Rails включают ассоциации моделей - PullRequest
1 голос
/ 14 февраля 2012

есть ли способ загрузить ассоциацию модели без энергичной загрузки? я пытаюсь отправить объект в браузер с включенными модельными ассоциациями.

push_to_user отправляет объект @todo в браузер. слушатель javascript прочитает данные и распечатает их.

Проблема, с которой я сталкиваюсь, заключается в том, что @todo не включает в себя ассоциацию моделей (например, «категории»). как я могу включить это?

@todo = Todo.find(1)
puts @todo.item.categories  # eager load categories. works

# push object to pusher
Pusher.push_to_user(@todo, user)

# custom pusher method
def self.push_to_user(todo, user)
    Pusher['private-1'].trigger('activity', {:todo => todo, :user => user})
end

# Browser
console.log(todo) # categories are missing

спасибо Пит

Ответы [ 2 ]

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

Вы можете вызвать #serializable_hash метод для вашей задачи с :include => categories

def self.push_to_user(todo, user)
    Pusher['private-1'].trigger('activity', {:todo => todo.serializable_hash(:include => :categories), :user => user})
end

Я не тестирую это решение, но могу работать.

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

Я думаю, что лучше добавить новый ключ с этими категориями:

def self.push_to_user(todo, user)
    Pusher['private-1'].trigger('activity', {:todo => todo, :categories => todo.categories, :user => user})
end
...