我有问题如何创建表单以将子项分配给父母之一。我的子节点在系统中定义,我转到子(别名)并希望将其分配给父母联系人之一(或创建新的)。我如何创建这样的表单?
class Alias < ActiveRecord::Base
belongs_to :user
belongs_to :contact
end
class Contact < ActiveRecord::Base
has_many :aliases
belongs_to :user
end
所以我有几个Alias对象和几个Contact,但是我不想去联系并指定Alias,但是去Alias,从(示例)选择框中选择一个Contacts。
答案 0 :(得分:0)
有很多方法可以选择关联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”的字段。将您要显示的任何字段放在选择框中。
从Contact
创建Alias
更加棘手,我个人不建议这样做。以下是几个问题,解释了如何做到这一点:
Does accepts_nested_attributes_for work with belongs_to?
Getting fields_for and accepts_nested_attributes_for to work with a belongs_to relationship
我希望有所帮助。