Использование accepts_nested_attributes_for с наследованием одной таблицы - PullRequest
4 голосов
/ 26 июня 2011

У меня есть модель Post, которая belongs_to одна Section. Существует два разных подкласса Section, и я использую STI для реализации различного поведения для каждого из них. В форме Post я хотел бы иметь вкладку для каждого Section. На вкладке пользователь может либо A) выбрать из существующего Section, используя <select>, либо B) позволить пользователю создать новый Section. Я хотел бы знать, как использовать accepts_nested_attributes_for и fields_for или все, что требуется для этого The Rails Way .

Любой совет с благодарностью. Спасибо.

1 Ответ

0 голосов
/ 30 июня 2011

Предполагая, что вкладки соответствуют двум подклассам

class Post
  # the two subclasses. Each instance will only be using one or the other
  belongs_to :section_foo
  belongs_to :section_bar

  accepts_nested_attributes_for :section_foo
  accepts_nested_attributes_for :section_bar
end

И в представлении (вероятно, один раз для каждой вкладки)

= form_for @post do |f|
  = f.select :section_id, SectionFoo.all # etc
  = fields_for @post.build_section_foo do |s|
    = s.text_field :bla_bla_bla

Это должно получить 85% пути.Вам может понадобиться: reject_if bidness на acceptpts_ *, чтобы избежать создания нового раздела и , назначающего старый раздел.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...