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