检查显示记录但仍然得到未定义的方法

时间:2016-10-07 19:45:04

标签: ruby-on-rails

我正在创建一个报告屏幕,并对相关数据进行关系查找。出于某种原因,我在尝试获取关系的属性时仍然遇到错误,但是.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

1 个答案:

答案 0 :(得分:1)

根据评论中的讨论,让下面的每一个都按预期工作:

Flavor.first.flavor_id
Flavor.first.attributes

意味着,属性读取不会被破坏。唯一的原因是,根据错误:您引用了错误/无效/不存在的对象flavor