Таблицы слияния рельсов - PullRequest
0 голосов
/ 03 июля 2011

У меня есть две таблицы: Members and Addresses.Как я могу объединить эти две таблицы вместе в моей модели, чтобы я мог объединить все их столбцы вместе?Например, у членов есть столбец с именем position, а у адресов - столбец с именем street.Как я мог сделать так, чтобы я мог иметь Положение и Адрес в одной виртуальной таблице.Для этого есть функция слияния?

1 Ответ

0 голосов
/ 03 июля 2011

Не уверен, зачем вам нужно создавать отдельную модель, вы можете использовать для этого базовые конструкции Ruby:

Я предполагаю, что Member имеет столбец с именем address_id, который является членом belongs_to и Address. Это автоматически свяжет для вас объединения.

Так что все, что вам нужно сделать, это примерно так:

class Address < ActiveRecord::Base
end

class Member < ActiveRecord::Base
  belongs_to :address
end

member = Member.create(:address => Address.find(123))

Если вы хотите получить адрес и просто поле позиции, тогда перейдите:

member = Member.find(456)
position = member.address.position

или, возможно:

Member.joins(:address).select("members.position, addresses.street")

Не уверен, что вы пытаетесь сделать, но если это что-то очень конкретное, вы также можете попробовать создать представление в вашей базе данных, а затем создать для него модель, рассматривая его как обычную таблицу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...