Отображение отношения RoR - PullRequest
       2

Отображение отношения RoR

0 голосов
/ 29 августа 2010

У меня настроены модельные отношения, и все работает хорошо, когда я использую код, подобный следующему:

@parent.child.each do |item|
item.name
end

Но как бы я назвал просто конкретного ребенка с указанным там идентификатором

, например.

ID ребенка 14

Хотелось бы позвонить, как:

@parent.child[childid].name #>>>>>> CHILD'S NAME

Ответы [ 2 ]

0 голосов
/ 29 августа 2010

Попробуйте:

@parent.children.detect { |child| child.id == 14 }

Это должно вернуть объект без запроса базы данных. Затем вы можете вызвать метод .name для него.

0 голосов
/ 29 августа 2010

@parent.child[14], скорее всего, не будет работать правильно, child - это массив, если это отношение has_many, но индекс массива не совпадает с идентификатором дочернего элемента.так что вы можете сделать что-то вроде этого:

@parent.child.find(14).name

Я не совсем уверен, но если вы сделаете что-то подобное:

@parent = Parent.find(some_id, :include => :child)
@parent.child.find(some_other_id) # should hit the query cache
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...