私はこのようなネストされたオブジェクトを持っています:
class Work < ActiveRecord::Base
belongs_to :issue
belongs_to :author
has_many :pages, :class_name => 'Work'
accepts_nested_attributes_for :pages, :allow_destroy => true
end
class Page < ActiveRecord::Base
belongs_to :work
end
ネストされたページオブジェクトのフィールドを使用して、作品を作成/編集するためのフォームがあります。この投稿に従ってセットアップを行ったので、開始時にフォームが新しいページを作成するようにヘルパーを使用しています。
module AdminHelper
def make_work(work)
returning(work) do |w|
w.pages.build if w.pages.empty?
end
end
end
次に、私の形式の部分的に私は持っています:
- form_for make_work(@work) do |f|
...
- f.fields_for :page do |page_f|
= page_f.label :text
%br
= page_f.text_area :text
%p
= f.submit "Submit"
ページのフィールドを表示しますが、送信されると、works コントローラーで create アクションを探します。作成アクションは管理者の作業コントローラー (名前空間) にあるため、壊れます。
名前空間付きのオブジェクトで試してみましたが、このようにすると、ページについて認識しません:
- form_for make_work([:admin, @work]) do |f|
...
入れ子になったオブジェクト フォームで名前空間を使用して、pages メソッドを持ち、名前空間化された admin/works コントローラーに投稿するにはどうすればよいですか?