关系和ActiveRecord

时间:2011-02-20 20:32:33

标签: ruby-on-rails-3 activerecord

我有一个愚蠢的问题。

我在DB中有2个表,在一个表中(例如:report)我有来自表“仓库”的外键。我想在报告中找到仓库的名称。

我使用此方法从其他表中查找内容:

@report = ReportMain.find(params[:id])

@warehouse = Warehouse.find(@report.warehouse_id).name

我的问题是,有一些最简单的方法吗?

2 个答案:

答案 0 :(得分:0)

取决于这些表之间的关系:

@warehouse = @report.warehouse

如果仓库为belongs_to到报表,报表has_onehas_many仓库,则会有效。请务必查看Ruby on Rails指南中的Association Basics,这是一个很棒的阅读。

答案 1 :(得分:0)

为了利用Rails的“魔力”,您需要在模型中设置关联。

ReportMain模型中,输入:

belongs_to: warehouse

Warehouse模型中,输入:

has_one :report_main

然后,您可以执行以下操作:

@warehouse = @report.warehouse