嵌套资源的形式
|
我已经解决了很多有关嵌套资源的form_for问题,但是找不到任何适合我的解决方案。我认为是时候问一个个性化的问题了。
我有两个模型,乔布斯和问题,乔布斯has_many_and许多问题和问题归属于Jobs。
我使用脚手架来创建控制器和模型,然后将资源嵌套在route.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
现在,我正在尝试访问\'/ jobs / 1 / questions / new \'并继续获取
问题#new中的NoMethodError
当代码为时,我从错误“没有路由匹配{:controller => \“ questions \”}”开始
<%= form_for(@question) do |f| %>
我知道这是错误的,因此我开始尝试其他连击,但没有一个起作用。
我试过了
<%= form_for([@job.questions.build ]) do |f| %>
那
<%= form_for([@job, @job.questions.build ]) do |f| %>
那
<%= form_for(@job, @question) do |f| %>
在许多其他组合中,这是行不通的。
这是我的耙路的链接:git clone https://gist.github.com/1032734
感谢您的帮助,如果需要更多信息,请告诉我,谢谢。
没有找到相关结果
已邀请:
2 个回复
壬驴拿歪竞
编辑: 还可以尝试:
膏焦凑
中
为此,您需要作业的ID。您将按照以下方式通过它: 在the9ѭ
Build(
)与上面的代码中使用new(
)相似,仅在旧版本的rails中有所不同;将2滑下。 现在进行创建操作(仍在
中)
如果仅使用这些,则问题模型中的job_id和user_id字段将为空。要添加ID,请执行以下操作: 在您的
中,将job_id添加到job_params中,如下所示:
然后,要传递用户的ID(如果使用的是Devise),请执行以下操作: