嵌套资源发布问题

时间:2013-08-24 00:40:28

标签: ruby-on-rails ruby ruby-on-rails-4

我有一个rails 4应用程序,它有两个支架(与你生成的默认支架相同)。我有一个看起来像这样的routes.rb:

resources :companies do
   resources :peoples
end

在我添加嵌套路线之前,这两个支架完全独立工作。但是当我添加嵌套路线时,当我访问路线时:

http://localhost:3000/companies/bobs-pizza/peoples/new

并填写人员表格并提交,我收到如下错误:

Routing Error
No route matches [POST] "/companies/bobs-pizza/peoples/new"

my _form.html.erb for peoples scaffold(人与公司之间的关系中的孩子)我改变为这样:

<%= form_for companies_path(@company,@people) do |f| %>

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

运行rake路由并确保companies_path是您需要的正确路由。

答案 1 :(得分:0)

此处:http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-form_for有一个带关联的form_for示例:

  

例如,如果您的资源已定义关联,则需要向[a]文档添加注释...

<%= form_for([@document, @comment]) do |f| %>

其中:

@document = Document.find(params[:id])

@comment = Comment.new

我认为命名的路线类似于:

company_peoples_path(@company)

顺便说一下,如果你有一个名为People的模型,人们会有哪些字段?