在我的Rails应用程序中,我从旧的PHP应用程序链接到MySQL数据库。命名约定不正确,因此我使用self.table_name将模型连接到各自的表。
我需要将多个表中的信息显示为一个资源。所有这些表都具有相同的列结构。我可以创建一个从这些表中提取信息的模型吗?我怎么做?我一直在玩find_by_sql,但还没有取得任何成功
编辑:这只是只读,不需要更新。
答案 0 :(得分:0)
根据您的问题,我相信您计划从一个特定型号加载其他型号。我的建议是使用多态关系。
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
由于所有其他模型/表具有相同的结构,因此您无需更改属性。
在更新它时,您只需接受sub_models的值作为嵌套属性,它们将更新相应的模型。
有关如何设置多态关系的更多详细信息,请访问Setting up a polymorphic association