0

我有嵌套资源,我正在尝试为每个单独的资源创建表单部分,以用于每个资源的新建和编辑操作。

路线.rb

resources :accounts, shallow: true,   :except => [ :destroy ] do
  resources :service,                 :except => [ :destroy ]
end

如果我在部分表单中使用以下内容,则编辑表单会正确呈现并正确保存更新,但新表单无法呈现并出现错误undefined method services_path

/app/views/services/_service_form.html.erb

<%= simple_form_for @service do |f| %>

如果我在表单部分中使用以下内容,新表单会正确呈现并正确保存对象,但编辑表单无法呈现并出现错误undefined method account_service_path

/app/views/services/_service_form.html.erb

<%= simple_form_for [@account, @service] do |f| %>

如图所示,我已经尝试添加url: service_path(@service)到表单块声明的两个版本,但它不能解决任何一个问题。

让这个工作起来肯定会缺少一些明显的东西,我确信过去我已经使用单个表单部分正确地工作了嵌套资源,我只是看不出这次有什么不同。

4

1 回答 1

0

将您的代码更改为以下更改 :service 为 :services

给定您的帐户模型 has_many :services 和服务模型 have belongs_to : account

resources :accounts, shallow: true,   :except => [ :destroy ] do
  resources :services,                :except => [ :destroy ]
end
于 2013-03-29T14:33:45.377 回答