簡體   English   中英

Rails create action呈現為Javascript,但未顯示在頁面上

[英]Rails create action renders as Javascript but doesn't show up on page

我正在構建一個類別菜單,可以在Rails中使用:remote => true進行更新,而無需重新加載頁面。

我的new動作成功地以javascript呈現,並且更改顯示在頁面上,但是我的create動作似乎成功呈現,但未顯示在頁面上。 我在重新加載頁面時可以看到更改,因此我知道create動作正在起作用。 只是javascript似乎無法正確呈現頁面。 但是,如果我在Firebug中查看POST請求的響應,則可以看到預期的更改。

請幫忙。 我已經在StackOverflow上花費了數小時,已經在嘗試尋找解決方案。

我的類別控制器

class CategoriesController < ApplicationController

  def new
    @category = Category.new()
  end

  def create
    @category = Category.new(category_params)

    if @category.save
      redirect_to(:controller => 'apps', :action => 'index')
    else
      render('new')
    end

    @categories = Category.where(:parent_id => nil)
  end

  def update
    @category.update_attributes(category_params)
  end

  private

  def category_params
    params.require(:categories).permit(:name, :parent_id)
  end
end

我的Apps控制器

class AppsController < ApplicationController
  def index
    @category = nil

    @categories = Category.where(:parent_id => nil)

    @apps = App.all

    respond_to do |format|
      format.html
      format.json
      format.js
    end
  end

  def new
    @app = App.new()
  end

  def create
    @app = App.new(params[:id])

    if @app.save
      redirect_to(:action => 'index')
    else
      render('new')
    end
  end

  private

    def apps_params
      params.require(:apps).permit(:name, :category, :image)
    end
end

創建表單(部分)

<%= simple_form_for :categories, remote: true,
                    :url => url_for(:action => 'create', :controller => 'categories'),
                    :method => 'post' do |f|   %>
    <%= f.input  :name                      %>
<% end %>

Create.js.erb

$('#categories-list').html("<%= j (render 'catList') %>");
$('#category-form').slideUp(350);

_catList.html.erb

<li class="pure-menu-heading">Categories</li>
<% @categories.each do |cat| %>
    <li class="pure-menu-item"><a href="#" class="pure-menu-link"><span class="email-label-personal"></span><%= cat.name %></a></li>
<% end %>

解決了!

我找到了一些在另一個論壇上幫助我的人。

我要做的就是在類別控制器中刪除redirect_to(:controller => 'apps', :action => 'index')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM