2013-08-01 42 views
0
parent table = cars 
related table = parts 

c = car.find_by_id(1) 
c.part.new(:car_id => 1, :part_name => "gas pedal", :color => "black") 

我不能得到这个工作。在ruby控制台中,如何通过控制台中的父表将新记录添加到相关表中?

我该怎么做?我如何找到我可以用于这种关系的方法?

+0

你打算通过第一行(和扩展名,第二行)是什么?你打算'父母(表=汽车)'还是你打算像'parent_table = cars'? –

回答

1

你可以像下面这样做

c = Car.find_by_id(1) 
c.parts.create(:part_name => "gas pedal", :color => "black") 

我假设你定义了一个汽车的has_many部分的关系。

1

这里有一个更2.0友好的答案

car = Car.find 1 
car.parts.create part_name: 'gas pedal', color: 'black' 

或者,您也可以做到这一点

car = Car.find 1 
part = Part.create(part_name: 'gas pedal', color: 'black') 
car.parts << part 

或快捷

car = Car.find 1 
car.parts << Part.create(part_name: 'gas pedal', color: 'black') 

如果你不想保存Part向右走,你可以做到这一点

car = Car.find 1 
part = car.parts.build(part_name: 'gas pedal', color: 'black') 
part.save 

是有用的!

相关问题