以rails形式将孩子分配给父母之一



我在如何创建将子项分配给父项的窗体时遇到问题。我的子节点是在系统中定义的,我转到子节点(别名)并想将其分配给一个父节点(或创建新节点)。我如何创建这样的表单?

class Alias < ActiveRecord::Base
  belongs_to :user
  belongs_to :contact    
end

class Contact < ActiveRecord::Base
  has_many :aliases
  belongs_to :user
end

因此,我有两个Alias对象和两个Contact,但我不想转到Contact并在那里指定Alias,而是转到Alias,并从(示例)选择框中选择一个Contacts。

有很多方法可以选择关联id。选择框可能是页面上最节省空间的框,但有时如果可能的关联很少,单选按钮会很好地工作。

我认为这样的东西可能适合你。这假设您将@contacts分配给控制器内类似Contact.all的对象。

= form_for @alias do |f|
  = f.label :contact_id, "Contact"
  = f.collection_select :contact_id, @contacts, :id, :full_names

这假设您的联系人中有一个名为"full_names"的字段。在选择框中放入要显示的任何字段。

Alias创建Contact更棘手,我个人不建议这样做

accepts_nested_attributes_for是否适用于belongs_to?

获取fields_for和accepts_nested_attributes_for以使用归属关系

我希望这能有所帮助。

最新更新