2016-03-22 3 views
1

このページに表示するエラーメッセージは表示されません。彼らは他のページではなく、この1レンダリングエラーメッセージが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 %>に変更しようとしましたが、セットアップをレンダリングこのエラーはマイケルHartlsから作られたこのライン<% if object.errors.any? %>

上のエラー

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

は、チュートリアルをレールと私が言ったように私は他のすべてのフォームが、この1のために正常に動作します。あなたはform_forでエラー(あなたのコントローラから@category)を持つCategoryインスタンスを与える必要があり

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

+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 "次へ"%> <% end %> – Rob

+0

そして、部分的なレンダリングが行われないときにエラーが表示されることは確かですか? –

答えて

1

理由は、フォームをレンダリングするとき、あなたは新しいカテゴリーをインスタンス化することです。

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