Ruby on rails 3 关系与活动记录

Ruby on rails 3 关系与活动记录,ruby-on-rails-3,activerecord,Ruby On Rails 3,Activerecord,我有一个愚蠢的问题 我在DB中有两个表,在一个表(例如:report)中有来自表“warehouse”的外键。我想在我的报告中得到仓库的名称 我使用此方法从其他表中查找: @report = ReportMain.find(params[:id]) @warehouse = Warehouse.find(@report.warehouse_id).name 我的问题是,有什么最简单的方法可以做到这一点 根据这些表之间的关系: @warehouse = @report.warehouse 如

我有一个愚蠢的问题

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

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

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

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

我的问题是,有什么最简单的方法可以做到这一点

根据这些表之间的关系:

@warehouse = @report.warehouse

如果一个仓库
属于一个报告,并且一个报告
有一个
有多个
仓库,则该方法将起作用。请务必查看RubyonRails指南中的,这是一本很棒的书。

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

在您的
ReportMain
模型中,放置:

belongs_to: warehouse
has_one :report_main
在您的
仓库
模型中,放置:

belongs_to: warehouse
has_one :report_main
然后,您可以执行以下操作:

@warehouse = @report.warehouse

仓库有多个:报告,报告属于:仓库。这是一对多的关系。如果一份报告属于仓库,我的答案仍然正确,并且应该像预期的那样有效。