我有一个复选框列表,人们可以为项目选择一个或多个组织。这是一个很多通过协会。
但我还想添加一个显示Add Other
的文本字段,以便用户也可以创建一个新的 组织并自动将其分配给项目 。
project.rb
has_many :organizationables
has_many :organizations, through: :organizationables
attr_accessible :organization_ids
organization.rb
attr_accessible :name, :website
has_many :organizationables
has_many :projects, through: :organizationable
organizationable.rb
attr_accessible :organization_id, :project_id
belongs_to :organization
belongs_to :project
我知道这是协会'组织机构'的一个奇怪名称,但是哦。我已经尝试了不同的方法来设置表单,但我无法使其工作。
新项目表格应该有复选框,可以将组织分配给项目,但也会有Other Organization
文本字段(将创建新组织并将其分配给项目)。
答案 0 :(得分:0)
假设您想在一个操作中创建新组织并与现有项目关联,这是最简单的方法:
new_organization.save!
project.organizations << new_organization
这将创建并保存将项目与新组织相关联的可组织记录。
更新:
首先保存新项目。然后设置他们检查的组织数组。如果他们创建了一个组织,请将其保存并添加到阵列中。然后一举将组织清单与项目联系起来:
project.organizations = my_list_of_checked_organizations
有关类似示例,请参阅http://guides.rubyonrails.org/association_basics.html#the-has_many-through-association。