Rails 3嵌套资源 - form partial仅适用于new或edit,不适用于两者

时间:2013-03-29 10:30:06

标签: ruby-on-rails-3 forms routes

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

的routes.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)添加到两个版本的表单块声明中,如图所示,但它没有解决任何问题。

一定有一些显而易见的东西我不知道如何使这个工作,我确信我已经嵌套资源在过去使用单个表单部分正常工作,我只是看不出这次有什么不同。

1 个答案:

答案 0 :(得分:0)

将您的代码更改为以下内容 变化:服务到:服务

根据您的帐户模型     has_many:服务 和服务模型有     belongs_to:account

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