我正在创建一个报告屏幕,并对相关数据进行关系查找。出于某种原因,我在尝试获取关系的属性时仍然遇到错误,但是.inspect将信息显示为白天。
orders_detail.products_cost.flavor.inspect
输出
#<Flavor flavor_id: 13, identifier: "BR", description: "Blue Razz">
然而
orders_detail.products_cost.flavor.flavor_id
输出
undefined method `flavor_id' for nil:NilClass
模型
class OrdersDetail < ActiveRecord::Base
self.table_name = "orders_detail"
belongs_to :orders_header, foreign_key: 'order_header_id'
belongs_to :address
belongs_to :products_cost
belongs_to :machine, foreign_key: 'machine_id'
end
class ProductsCost < ActiveRecord::Base
self.table_name = "products_cost"
belongs_to :product
belongs_to :size
belongs_to :units_of_measure, foreign_key: "uom_id"
belongs_to :flavor
validates :product_id, :presence => true
validates :flavor_id, :presence => true
validates :size_id, :presence => true
validates :uom_id, :presence => true
end
class Flavor < ActiveRecord::Base
has_many :product_costs
end
答案 0 :(得分:1)
根据评论中的讨论,让下面的每一个都按预期工作:
Flavor.first.flavor_id
Flavor.first.attributes
意味着,属性读取不会被破坏。唯一的原因是,根据错误:您引用了错误/无效/不存在的对象flavor
。