有没有办法加载模型关联而不需要加载?即时尝试将对象推送到包含模型关联的浏览器。
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
感谢 皮特
答案 0 :(得分:0)
我认为更好的是添加这个类别的新密钥:
def self.push_to_user(todo, user)
Pusher['private-1'].trigger('activity', {:todo => todo, :categories => todo.categories, :user => user})
end
答案 1 :(得分:0)
您可以使用#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
我不测试此解决方案但可行。