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

问题描述:

嗨,我正在RoR上实现一个Web应用程序。我的第一个模型有三个字段作为输入(重量,身高和性别),而我的第二个模型有2个字段(重量和身高)。我实施了第一个模型,并且正在考虑为两个领域的模型创建一个单独的模型。我的任务是当我将数据放入第二个模型(我正在考虑实现)时,我的代码应该从第一个模型中提取所有数据,即包含三个字段的数据,然后对其执行计算。如何在Ruby on Rails中的两个模型之间共享数据

我的问题是:

将在同一分贝这两种模式之间可以共享?当我输入数据并将数据提交到第二个模型表单时,我应该如何从第一个模型提取数据?

+0

这两个模型之间的逻辑关系是什么?他们是否有关系,还是他们都是某些通用父类的有效子类?如果是后者,那么下面的STI建议是好的。 – 2012-01-29 16:42:35

+0

他们没有任何关系。我还没有制作第二个模型,有两个领域,但打算这样做。我的项目涉及使用三个字段的主模型数据,并在小模型(2字段)视图中显示结果输出。 – 2012-01-29 19:47:38

从您的问题的细节它不完全确定,但也许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,我建议阅读一个或两个关于这个话题的教程。正确使用STI和Rails可能有时很困难。