Rails 4.2模型关系has_many为对象生成了辅助方法

时间:2016-11-01 14:04:28

标签: ruby-on-rails ruby-on-rails-4

我想知道rails自动生成的对象的自动辅助方法。

class Car < ActiveRecord::Base
   has_one :steering_wheel, inverse_of: car
   has_many :windows, inverse_of: :car
end

class Window < ActiveRecord::Base
   belongs_to :car, inverse_of: :windows
end

class SteeringWheel < ActiveRecord::Base
   belongs_to :car, inverse_of: :steering_wheel
end

通过这种关系,我可以做到

car = Car.first
car.create_steering_wheel

但我还想创建一个新的window 喜欢

car.create_window

怎么可能这样做?

2 个答案:

答案 0 :(得分:2)

使用关联构建器方法

car.windows.create

答案 1 :(得分:0)

belongs_to关联添加了此方法

association
association=(associate)
build_association(attributes = {})
create_association(attributes = {})
create_association!(attributes = {})

这意味着如果window是Window

的实例,则可以window.create_car

从Parent创建对象就像这样

car = Car.first
car.windows.create

参考:http://edgeguides.rubyonrails.org/association_basics.html#detailed-association-reference