我已经完成了大量的form_for嵌套资源问题,无法让任何解决方案适合我.我想是时候问一个个性化的问题了.
我有两个模型,工作和问题,工作有很多问题和问题属于工作.
我使用scaffolding创建控制器和模型,然后嵌套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
现在我正在尝试访问’/ jobs / 1 / questions / new’并继续获取
问题#new中的NoMethodError
当代码出现时,我开始使用错误No route matches {: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| %>
在一堆其他组合中,并没有工作.
这是我的rake路线的链接:git clone https://gist.github.com/1032734
任何帮助表示赞赏,如果您需要更多信息,请告诉我,谢谢.
解决方法
我只是将URL作为额外选项传递:
<%= form_for(@question,:url => job_questions_path(@job)) do %>
编辑:
还试试:
form_for([@job,@question])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。