1
我有一个应用程序有三个模型:company
,university
和formation
。这三种模式之间Rails中的多个模型错误
的关系是:
class Company < ActiveRecord::Base
has_many :formations, dependent: :destroy
end
class University < ActiveRecord::Base
has_many :formations, dependent: :destroy
end
class Formation < ActiveRecord::Base
#company
belongs_to :company
#universities
belongs_to :university
def company_name
(company or university).try(:name)
end
def company_name=(name)
company_or_university = University.where(name: name).first
company_or_university ||= Company.where(name: name).first_or_create
self.company = company_or_university
end
end
因此,在这个应用程序,我想下拉列表中的形式形成同场的大学和公司的名单,这就是为什么我使用这个代码我形成形式:
<% companies_or_universities = (Company.all.pluck(:name) + University.all.pluck(:name)).sort %>
<%= f.text_field :company_name, data: {autocomplete_source: companies_or_universities}, required: true, class: "form-control form-newjob" %>
此代码工作正常,但问题是,当我尝试创建一个新的形成和选择大学的名字,我得到这个错误
公司(# - 650866168)预计,拿到大学(# - 647908008)
为self.company = company_or_university
。我该如何解决这个问题?
这是为新记录工作,但是当我尝试编辑已经使用公司名称的记录并尝试选择大学名称时,此大学名称未保存 – avinodra 2015-02-07 18:33:20
这就是为什么我强烈建议朝多态关联或类似的方向发展实现。这样,你会在兔子洞里变得越来越深......但是让我们看看我的编辑是否解决了你的问题(这就是说,你将同时拥有“大学”和“公司”记录)。 – dgilperez 2015-02-07 18:59:32
现在,当我在编辑 – avinodra 2015-02-07 19:05:05