0

我有一个具有两个脚手架的 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"

我的 _form.html.erb 为人民的脚手架(人民和公司之间的关系中的孩子)我变成了这样:

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

感谢所有帮助。

4

2 回答 2

1

运行 rake 路线并确保 company_path 是您需要的正确路线。

于 2013-08-24T00:44:41.050 回答
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 的模型,那么 people 有哪些字段?

于 2013-08-24T03:56:27.930 回答