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 に変更します

あなたの Account Model has_many :services と Service Model が belongs_to : account を持っているとします。

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