Mysql 如何在Rails中创建具有多个表的模型?

Mysql 如何在Rails中创建具有多个表的模型?,mysql,ruby-on-rails,ruby,Mysql,Ruby On Rails,Ruby,在我的Rails应用程序中,我从遗留PHP应用程序链接到一个MySQL数据库。命名约定不正确,因此我使用self.table_name将模型连接到各自的表 我需要将多个表中的信息显示到一个资源中。所有这些表都具有相同的列结构。我可以创建一个模型,从每个表中提取信息吗?我该怎么做?我一直在玩弄find_by_sql,但尚未取得任何成功 编辑:这些都是只读的,不需要更新。根据您的问题,我相信您计划从一个特定模型加载其他模型。我的建议是使用多态关系 class MainModel has_many

在我的Rails应用程序中,我从遗留PHP应用程序链接到一个MySQL数据库。命名约定不正确,因此我使用self.table_name将模型连接到各自的表

我需要将多个表中的信息显示到一个资源中。所有这些表都具有相同的列结构。我可以创建一个模型,从每个表中提取信息吗?我该怎么做?我一直在玩弄find_by_sql,但尚未取得任何成功


编辑:这些都是只读的,不需要更新。

根据您的问题,我相信您计划从一个特定模型加载其他模型。我的建议是使用多态关系

class MainModel
  has_many :sub_model, polymorphic: true
end

class Item1
  belong_to :main_model, as: :sub_model
end

class Item2
  belong_to :main_model, as: :sub_model
end
现在,在视图中,您必须按如下方式写入数据

@main_model.sub_model.name |  @main_model.sub_model.value
由于所有其他模型/表都具有相同的结构,因此不必更改属性

当更新它时,您只接受子_模型的值作为嵌套属性,它们将更新相应的模型


有关如何设置多态关系的更多详细信息,请访问

您不能使用视图吗?因此,您可以将这些表映射到一个表中,并一次性修复命名。@Rufinus谢谢您的评论,听起来是个好主意,您是否有机会提供一个代码示例?@Rufinus-保存模型怎么样?应该放在哪张桌子上?您不能保存到视图中。@BroiSatse说是谁?-有一些限制,但它可以工作。@B努西:对不起,我更喜欢php的家伙:谢谢你的回答。我试过设置这个,但似乎不起作用。。这是因为我使用的MySQL表不遵循ActiveRecord的命名约定吗?我想正因为如此,我将无法设置任何外键或我得到的任何关系:未知键::多态。此代码与数据库无关。有关如何设置多态关联的更多详细信息,请查看此问题。嘿,即使ActiveRecord的命名约定没有被遵循,因为它是一个遗留数据库,这也能工作吗?我仍然在犯错误,并且认为这是因为这个