рельсы 3 показывают из родственных таблиц - PullRequest
0 голосов
/ 29 февраля 2012

В моем events_controller, если я использую следующее:

def index
    respond_with(@market.events) do |format|
        format.js {render :json => @market.events, :callback => params[:callback]}
    end
end

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

respond_with(@market.events.joins @market.events.assets) do |format|

я получу неопределенный метод `assets 'для #ActiveRecord :: Relation: 0x1088215a0.На моей странице показа событий я могу сделать asset.asset.url, и он показывает.

Есть идеи, где я ошибся?

Ответы [ 2 ]

0 голосов
/ 29 февраля 2012

Есть несколько событий, и вы пытаетесь вызвать assets для коллекции событий, то есть набора из множества событий, которые не имеют assets, хотя каждоеэлемент в коллекции имеет assets.

Вы говорите, что хотите получить актив (в единственном числе) для события (также в единственном числе), поэтому я не совсем уверен, чего вы на самом деле хотите достичь, посколькувы возвращаете несколько активов.Чтобы получить все активы для всех событий, которые вы можете сделать:

@market.events.map(&:assets).flatten # If event has many assets
@market.events.map(&:asset)          # If event has one asset
0 голосов
/ 29 февраля 2012

Вы пробовали загружать?С @market.events.includes(:assets) вы также должны иметь активы.

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