Mysql Rails合并表
我有两个表:Mysql Rails合并表,mysql,ruby-on-rails-3,merge,Mysql,Ruby On Rails 3,Merge,我有两个表:成员和地址。如何在模型中将这两个表合并在一起,以便将它们的所有列合并在一起?例如,成员有一个名为位置的列,地址有一个名为街道的列。我怎样才能使位置和地址在同一个虚拟表中。是否有用于此的合并功能?不确定为什么需要创建单独的模型,您可以使用基本的Ruby结构: 我假设成员有一个名为地址\u id的列,即成员所属的地址。这将自动为您关联联接 所以你需要做的就是这样: class Address < ActiveRecord::Base end class Member < A
成员和地址
。如何在模型中将这两个表合并在一起,以便将它们的所有列合并在一起?例如,成员有一个名为位置
的列,地址有一个名为街道
的列。我怎样才能使位置和地址在同一个虚拟表中。是否有用于此的合并功能?不确定为什么需要创建单独的模型,您可以使用基本的Ruby结构:
我假设成员
有一个名为地址\u id
的列,即成员所属的地址
。这将自动为您关联联接
所以你需要做的就是这样:
class Address < ActiveRecord::Base
end
class Member < ActiveRecord::Base
belongs_to :address
end
member = Member.create(:address => Address.find(123))
或许:
Member.joins(:address).select("members.position, addresses.street")
不确定您想做什么,但如果是非常具体的事情,您也可以尝试在数据库中创建一个视图,然后为其创建一个模型,将其视为一个常规表。基本上,当为我的网站填写订单时,您必须填写企业的地址,然后填写企业中每个成员的地址。我想如果我这样做的话,可能会少一点冗余。。。你同意吗?或者我现在只是在使用糟糕的做法?如果你在Rails中很难做到这一点,那么你可能没有按照Rails希望的方式来做。我会用最简单的方法。你可能真正想要的是一个“拥有”和“属于”或“拥有”:通过关系。我仍然不能百分之百确定你想要完成什么。
Member.joins(:address).select("members.position, addresses.street")