我仍然是铁杆的大菜鸟,所以我希望有人可以提供帮助!
我有两个模型,公司和联系人,他们之间有HABTM。两者都有适用于CRUD的控制器。例如,我希望能够在公司视图页面上创建一个表单来链接现有联系人(可能是下拉列表)或创建新联系人并将其链接到公司。反之亦然。不确定这是否可行?
答案 0 :(得分:1)
如果我的问题正确,您希望在公司和联系人之间创建一个has_and_belongs_to_many关系。 所以在你的Company.rb中添加
has_and_belongs_to_many :contacts
并在您的Contact.rb中添加
has_and_belongs_to_many :companies
现在为此关系创建一个新表companies_contacts,其中包含两个字段'company_id'和'contact_id'
在公司控制器里面展示行动
@contact = Contact.new
在公司的展会页面中添加: -
<%= form_for @contact,:url => contacts_path(:company_id=> @company.id) do |f|%>
<%=f.label :name%>
<%=f.text_field :name%>
<%=f.button :submit%>
<%end%>
现在在联系人控制器中,创建操作的行为如下: -
@contact = Contact.find_or_create_by_name(params[:contact][:name])
@contact.companies= Company.where(:id => params[:company_id])
@contact.save