Ruby, получить дочерний объект по ключу - PullRequest
0 голосов
/ 12 января 2012

Я пытаюсь получить дочерний объект на основе ключа в таблице его родителя.Например, у меня есть класс Customer, который содержит ключ store_id для таблиц Stores.Если у клиента есть ключ «store_id», я бы хотел вернуть этот объект Store, а не родительский объект Customer.

РЕДАКТИРОВАТЬ: Вот инструкция sql, показывающая, что я пытаюсь сделать.

Таким образом, оператор SQL будет выглядеть примерно так.

"ВЫБЕРИТЕ МАГАЗИНЫ. * ОТ покупателей ВНУТРЕННЕЕ СОЕДИНЕНИЕ хранит ВКЛ ПОКУПАТЕЛИочень краткий способ показать это.

Ответы [ 2 ]

5 голосов
/ 12 января 2012

Я предполагаю, что вы используете рельсы с готовой конфигурацией (используя ActiveRecord).

По соглашению, ключ "store_id" в таблице "Customers" должен совпадать с полем "id" в таблице "stores". У вас также должны быть установлены следующие модели классов:

class Store < ActiveRecord::Base
  has_many :customers # this is not required for what you want to do here, but recommended
end

class Customer < ActiveRecord::Base
  belongs_to :store
end

Предполагая, что это правда, вы можете сделать это, если у вас есть ключ хранилища:

# assuming we have store key == 9
Store.find(key)

Или вы можете сделать это, если у вас уже есть клиент:

# assuming we have customer.store_id == 9
customer.store

Или, если у вас есть только ключ клиента:

# assuming we have a customer key == 9
customer = Customer.find(9)
store = customer.store
0 голосов
/ 12 января 2012

Я не часто использую ActiveRecord, но думаю, что это так:

Store.find(customer.store_id)
...