如何在Ruby on Rails中的两个模型之间共享数据

时间:2012-01-29 08:20:42

标签: ruby-on-rails ruby

您好我正在RoR上实施一个网络应用程序。我的第一个模型有三个字段作为输入(重量,高度和性别),而我的第二个模型有两个字段(重量和高度)。我已经实现了第一个模型,我正在考虑为具有两个字段的模型创建一个单独的模型。任务是当我将数据放入第二个模型(我正在考虑实现)时,我的代码应该从第一个模型中提取所有数据,即具有三个字段的数据,然后我应该对其进行计算。

我的问题是:

这两个模型之间是否会共享相同的数据库?当我输入并将数据提交到第二个模型表格时,我应该如何从第一个模型中提取数据?

1 个答案:

答案 0 :(得分:0)

根据您的问题的详细信息,这并不完全确定,但 Single Table Inheritance 可能会对您有所帮助。

基本上你可以拥有这些模型:

class BaseModel < ActiveRecord::Base; end
class ThreeFieldModel < BaseModel; end
class TwoFieldModel < BaseModel; end

您的迁移将包含所有字段,包括一个神奇的type列:

create_table :base_model do |t|
  t.string :type,   null: false
  t.string :weight
  t.string :height
  t.string :gender
  t.timestamps
end

如果您决定使用STI,我建议您阅读有关此主题的一两个教程。适当地使用带有Rails的STI可能很困难。