0
我仍然是一个大的菜单,所以我希望有人可以帮助!HABTM手册协会
我有两个模型,公司和联系人与他们之间的HABTM。两个都有适用于CRUD的控制器。例如,我希望能够做的事情是在公司视图页面上,有一个链接现有联系人(可能是下拉列表)的表单,或创建一个新联系人并将其链接到公司。反之亦然。不知道这是可能的吗?
我仍然是一个大的菜单,所以我希望有人可以帮助!HABTM手册协会
我有两个模型,公司和联系人与他们之间的HABTM。两个都有适用于CRUD的控制器。例如,我希望能够做的事情是在公司视图页面上,有一个链接现有联系人(可能是下拉列表)的表单,或创建一个新联系人并将其链接到公司。反之亦然。不知道这是可能的吗?
如果我的问题是正确的,您希望在公司和联系人之间创建has_and_belongs_to_many关系。 所以在您的Company.rb添加
has_and_belongs_to_many :contacts
,并在您Contact.rb添加
has_and_belongs_to_many :companies
现在,这种关系建立一个具有两个字段的COMPANY_ID“和 'CONTACT_ID'
新表companies_contacts在表演动作里面公司负责
@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
未定义的方法'接触为#<#<类别:0xb44cc9e4>: 0xb0ce404> –
但我想要做的是在公司显示页面有一个联系人的下拉列表中选择? –
编辑答案 <%=的form_for @contact,:URL => contacts_path(:COMPANY_ID => @ company.id)做| F |%> :网址应该是contacts_path而不是为联系人拖放 –