2013-01-06 28 views
0

嗨,大家好我有一個情況,我在一個表單中,我正在接受一個汽車服務應用程序的訂單。我有以下型號:如何find_or_initialize基於兩個字段時,當兩個字段對應於可能的未初始化的對象

Car 
belongs_to :car_company 

Car_company 
has_many :cars 

Services 
attributes_accessible :car_company_id, :car_id 
#virtual attributes 
attributes_accessible :car_company_name, :car_reg 

的事情是,在單一表單上的用戶可以在汽車公司的名稱以及汽車的登記號碼輸入。如果公司名稱不存在,它會創建一個新公司並將其與該服務關聯起來,同樣的情況也適用於該車。我得到了這部分工作,但事情是,我希望提交此表單時,創建的汽車應自動與car_company關聯,以確定carcompany是存在還是不存在。

我在這裏堅持如何以正確的方式完成這件事?其基本上只是爲了避免必須輸入汽車的詳細信息和公司的詳細信息,只是爲了在表單上使用它們。任何想法傢伙?

+0

你可以發佈你的代碼嗎? –

回答

0

我看到你正在使用非傳統的模型名稱。按照慣例,你的模型應該是CarCompany。不過,我認爲你有什麼工作。

把這樣的東西放在適當的控制器可能是像你想要的東西。如果沒有,請澄清你想要的。

car_company = Car_company.find_or_initialize_by_name(params[:car_company_name]) 
car = Car.find_or_initialize_by_registration(params[:car_registration]) 
car_company.cars << car 
car_company.save 

實際上,你可能能夠在中間兩行car_company.cars.find_or...結合,但我不知道是否可行與否。

我希望有幫助。

相關問題