【发布时间】:2016-07-21 18:40:41
【问题描述】:
我使用的是 Rails 4.2.4。加载子对象时如何自动加载父对象?我有
class MyObject < ActiveRecord::Base
belongs_to :address, class_name: 'Address', foreign_key: :address_id, :autosave => true, dependent: :destroy
但是当我打电话时
@my_object = MyObject.find(params[:id])
puts "address; #{@my_object.address} address_id: #{@my_object.address_id}"
输出是
address; address_id: 6792
这意味着没有加载父对象,即使显然有一条地址记录与之相关。我希望它在我的模型时自动加载。我该怎么做?
编辑:响应wishalizer的建议,我将模型更改为
class MyObject < ActiveRecord::Base
…
belongs_to :address, inverse_of: :my_object
和
class Address < ActiveRecord::Base
has_one :my_object, inverse_of: :address
但还是报错
NoMethodError (undefined method `includes' for #<MyObject:0x007fb7232415f8>):
app/controllers/application_controller.rb:9:in `current_my_object'
app/controllers/my_objects_controller.rb:5:in `edit'
在应用给出的建议时。
【问题讨论】:
标签: ruby-on-rails-4 load associations parent belongs-to