Присоединяется с помощью AS in: выберите с ActiveRecord - PullRequest
1 голос
/ 19 июня 2009

Я пытаюсь сделать это

Version.find(:all, :joins=>"JOIN editions ON versions.edition_id=editions.id JOIN products ON editions.product_id=products.id", :select=>"products.name, versions.name AS what")

но ActiveRecord не соблюдает ключевое слово AS ... есть идеи?

Редактировать: Поскольку оба поля называются «name», они сталкиваются, поэтому я получаю только последнее в списке.

1 Ответ

1 голос
/ 19 июня 2009

Из запроса:

Изделий продукта имеет множество выпусков (просто укажите здесь связь)

Издание имеет_ множество версий

foo = Version.find(:all, :joins=>"JOIN editions ON versions.edition_id=editions.id JOIN products ON editions.product_id=products.id", :select=>"products.name, versions.name AS what")
puts foo.inspect 

Это должно дать вам значение:

[#<Version name: "foobar1">, #<Version name: "foobar2">]

foo[0].what # Will print the value of 'what' returned by the query

Когда я написал похожий запрос с похожей иерархией, он дал мне идеальные результаты. Хотели бы вы поделиться трассировкой стека, если вы получаете сообщение об ошибке?

РЕДАКТИРОВАТЬ: foo [0] .attributes напечатает {"name" => "foobar1", "what" => ""} Извините за опечатку здесь. Я хотел сказать атрибуты.

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