从关联模型中检索信息

时间:2014-01-14 19:21:21

标签: ruby-on-rails associations

我有3个型号:

class Brand 
  attr_accessible :obs, :site, :title
  has_many :equipments
end

class Equipment 
  attr_accessible :brand_id, :category_id, :lending_id 
  belongs_to :brand
  has_many :lendings  
end

class Lending  
 attr_accessible :equipment_id 

 belongs_to :equipment
end

我正试图展示相关设备的品牌:   品牌:<%= @ lending.equipment.brand%>   该命令显示:品牌:0xab7f2c8

正如你所看到的,品牌和借贷模式之间没有关联,对我来说,如果我这样做,那就很奇怪了。我想使用设备/品牌关联来检索:标题信息并在我的借阅视图中显示它。

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

您可以在Lending中使用代理:

delegate :brand, :to => :equipment, allow_nil: true

或者您可以在Lending中设置一个通过关联:

has_one :branch, :through => :equipment

无论哪种方式,您现在都可以直接从branch实例调用Lending,然后(几乎)对其进行处理,就像它是常规关联一样。

答案 1 :(得分:1)

使用delegate

   class Lending  
     attr_accessible :equipment_id 

     belongs_to :equipment
     delegate :brand, :to => :equipment, :allow_nil => true
    end

现在可以使用

<%= @lending.brand.title%>