2013-01-06 25 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...结合,但我不知道是否可行与否。

我希望有帮助。

相关问题