2016-03-22 76 views
1

我無法收到顯示在此頁面上的錯誤消息。他們顯示效果細膩其他任何網頁,但不是這樣的一個渲染錯誤消息不能在一個頁面上工作

mod_approval.index.html.erb

<% @check_category.each do |category| %> 

<%= form_for([@guide, Guide.friendly.find(@guide.id).categories.new], url: guide_mod_panel_approve_category_path, method: :post) do |f| %> 
     <%= render 'shared/error_messages', object: f.object %> 
     <%= hidden_field_tag :check_id, category.id %> 
     <%= f.hidden_field :name, :value => category.name %> 
     <%= f.submit "Approve" %> 
<% end %> 
<% end %> 

mod_approval_controller

def mod_add_category 

    @guide   = Guide.friendly.find(params[:guide_id]) 
    @check_category = CheckCategory.where(guide_id: @guide.id).all 
    @category  = Guide.friendly.find(@guide.id).categories.new(category_params) 

     if @category.save 

    flash[:success] = "Game category added succesfully!" 
    redirect_to guide_mod_panel_mod_approval_index_path(@guide) 
    else 
    render 'mod_approval/index' 
    end 

end 

路線

match '/guides/:guide_id/mod-panel/approve/category' => 'mod_approval#mod_add_category', :via => :post, as: :guide_mod_panel_approve_category 
match '/guides/:guide_id/mod-panel/approve' => 'mod_approval#index', :via => :get, as: :guide_mod_panel_mod_approval_index 

也不太清楚他們爲什麼不是渲染我試圖改變<%= render 'shared/error_messages', object: f.object %><%= render partial: 'shared/error_messages', object: f.object %>但是,在這條線上<% if object.errors.any? %>

這個錯誤使組合體從邁克爾Hartls做出錯誤

undefined local variable or method `object' for #<#<Class:0x007ffdbcd1c3a8>:0x007ffdbcbdd320> 

軌教程和我說我工作正常,所有其他形式,但是這一個。

+0

是什麼工作的形式是什麼樣子? –

+0

@ muistooshort <%= form_for([@ category,@category_item],url:category_items_create_path)do | f | %> <%=渲染的共享/ error_messages',對象:f.object%> <%= f.label:名字, 「名稱」 %> <%= f.text_field:名稱%> < %= f.submit「Next」%> <% end %> – Rob

+0

而且您確定在部分渲染時不顯示錯誤? –

回答

1

的原因是,當你呈現形式,實例化一個新的類別:

form_for([@guide, Guide.friendly.find(@guide.id).categories.new], 

你需要給form_for具有錯誤(@category從控制器)類別實例。因此,我將你的形式改成這樣:

form_for([@guide, @category], 

,然後在#new方法確保您設置:

@category = @guide.categories.build 
+0

謝謝。最初有一個原因是我沒有使用'@ category',但是我修復了它,忘記了放回'@ category'(或者如果我離開它,它不會造成任何傷害)。恨這樣做,但你可以檢查我的其他問題,如果你不能或不知道它的罰款http://stackoverflow.com/questions/36109532/using-the-rails-gem-mailboxer-and-the-sender- id-is-always-zero – Rob

+0

對不起,我不知道Mailboxer,而且你的代碼從不提及'sender_id'。 :-) –

+0

不用擔心謝謝 – Rob