ネストされたリソースの質問のために、私は数多くのform_forを調査しています。私は個人的な質問をする時間を考えました。ネストされたリソース用のフォーム
私は2つのモデル、仕事と質問、仕事has_many質問と質問belongs_to仕事を持っています。
スキャフォールディングを使用してコントローラとモデルを作成し、routes.rb内のリソースをネストしました。
root :to => "pages#home"
resources :jobs do
resources :questions
end
get "pages/home"
get "pages/about"
get "pages/contact"
class Job < ActiveRecord::Base
has_many :questions
end
class Question < ActiveRecord::Base
belongs_to :job
end
今私がアクセスしようとしています「/仕事/ 1 /質問/新しい」と
が、私はエラー を開始し、新たな#質問でNoMethodErrorを得続けるNoルート一致しませんコードは
<%= form_for(@question) do |f| %>
が、私はこれは間違っている知っていたので、私は他のコンボやそれらのどれを試してみました:{コントローラー=>「質問」}働いた。
私は
<%= form_for(@job, @question) do |f| %>
他の組み合わせの束の中で、それが働いていないことを
<%= form_for([@job, @job.questions.build ]) do |f| %>
こと
<%= form_for([@job.questions.build ]) do |f| %>
を試してみました。 gitのクローンhttps://gist.github.com/1032734
すべてのヘルプは高く評価され、あなたが、おかげでより多くの情報が必要な場合は私に知らせて:ここで
は私のすくいルートへのリンクです。
最初にオプションが働いた、ありがとう! - URLを渡すと、これが解決されますか?また、問題のjob_idはDB内で更新されていません - それを修正する方法はありますか? {:controller => "questions"} – Igrabes
':url'オプションを渡さないと、Railsはそれを単独で実行しようとします。 'Question'は必ずしもそうである必要はないので、' Job'のサブリソースであることはわかりません。更新されていない 'job_id'に関して、あなたが大量割り当てを使用しているなら、おそらくそれを無視しているでしょう。 'question.job = new_job'を別途呼び出してください。私はあなたのコードを見ることはできません。 – d11wtq
こんにちは@ d11wtq、私はあなたが何を意味するのかよくわからないquestion.job = new_job - どこに行くのですか?それが私のrepo [リンク(https://github.com/igrabes/InterQ)、もしそれが役立ちます。 – Igrabes