0
問題はとても簡単なようですが、修正できないようです。私は明らかな何かを見逃しているに違いないが、本当に助けに感謝するだろう!Ruby on Railsの未定義メソッド `discussions_path ' - ネストされたリソース、1対多の関係
undefined method `discussions_path' for #<#<Class:0x000001032e90d8>:0x000001030f1168>
ルートファイル:
resources :forums do
resources :discussions
end
議論/ _form.html.erbファイル:
<%= form_for [@forum, @discussion] do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :name %><br />
<%= f.text_field :name %>
</p>
<p><%= f.submit "Submit" %></p>
<% end %>
ディスカッションコントローラ新しいアクション:
を表示さエラーメッセージ
def new
@forum = Forum.find_by_permalink(params[:id])
@discussion = Discussion.new
end
これは私が今(ターミナルで)取得しています完全なエラーです:あなたはフォーラムおよびディスカッションでform_for
への配列を渡す必要があるネストされたリソースについて
Started GET "/forums/general-chat/discussions/new" for 127.0.0.1 at 2012-04-14 18:35:28 +0100
Processing by DiscussionsController#new as HTML
Parameters: {"forum_id"=>"general-chat"}
Forum Load (1.6ms) SELECT "forums".* FROM "forums" WHERE "forums"."permalink" IS NULL LIMIT 1
Rendered layouts/_content_full_start.html.erb (0.0ms)
Rendered discussions/_form.html.erb (574.4ms)
Rendered discussions/new.html.erb within layouts/application (575.9ms)
Completed 500 Internal Server Error in 581ms
うーん、私は両方を渡すと、ケースになると思いましたが、私は同じを取得しているように見えますエラー:未定義のメソッドdiscussion_path。私の_form.html.erbはこれで始まります: '<%= form_for [@forum、@discussion] do | f | %> 'とディスカッションコントローラーの新しいアクションは、次のようになりました:' def new @discussion = Discussion.new @forum = Forum.find_by_permalink(params [:id]) end' - 私はpermalinksの代わりにURLのID。 – Kobius
'@ forum'がnilに設定されていませんか? – pjumble
私はそうは思わない - しかし、フォーラムの/一般的なチャット/ディスカッション/新/ – Kobius