blo*_*ilk 5 ruby activerecord ruby-on-rails ruby-on-rails-3
我有一个模型Post,其中belongs_to一个Section。有两个不同的Section子类,我使用 STI 为每个子类实现不同的行为。在Post表单中,我想为每个Section. 该选项卡将让用户 A) 从现有Section使用 a<select>或 B) 让用户创建一个新的Section. 我想知道如何使用accepts_nested_attributes_for以及fields_for完成此操作所需的任何内容The Rails Way。
任何意见是极大的赞赏。谢谢。
小智 0
假设选项卡对应两个子类
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
Run Code Online (Sandbox Code Playgroud)
并在视图中(可能每个选项卡一次)
= 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
Run Code Online (Sandbox Code Playgroud)
这应该可以让你完成 85% 的任务。您可能需要对 Accept_* 进行一些 :reject_if bidness 以避免创建新部分并分配旧部分。