Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Rails合并表_Mysql_Ruby On Rails 3_Merge - Fatal编程技术网

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")