1

有没有一种方法可以在不急切加载的情况下加载模型关联?我试图将包含模型关联的对象推送到浏览器。

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

谢谢皮特

4

2 回答 2

0

我认为更好的是在这些类别中添加一个新键:

def self.push_to_user(todo, user)
    Pusher['private-1'].trigger('activity', {:todo => todo, :categories => todo.categories, :user => user})
end
于 2012-02-14T15:56:22.813 回答
0

#serializable_hash你可以在你的 todo 上调用一个方法:include => categories

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

我不测试这个解决方案,但可以工作。

于 2012-02-15T10:17:47.450 回答