我需要在观察者内部渲染部分内容。
我收到此错误:
undefined method `render' for #<OrderObserver:0xb257a30c>
这是我的观察员:
class OrderObserver < Mongoid::Observer
def after_create(order)
gift = order.gift
seller = order.seller
buyer = order.user
admin = User.find_or_create_by(email: "email@email.com")
message = Message.new(subject: "Message subject", body: "<%= #{render 'users/messages/templates/new_order', :order => order} %>", sender: admin, receiver: seller,
microfunc: microfunc, order: order)
message.send_message
message.save
end
end
是否有可能渲染部分内部的mongoid观察者?如果不可能,我该怎么做?
非常感谢!
答案 0 :(得分:0)
不,这是不可能的。观察者正在对象级别发生,观察文档何时被保存,然后对该文档/对象进行操作。保存对象和浏览器之间没有任何关联(因为对象可以保存在控制台中,或者是rake任务,或者任何时候加载rails环境)。
如果您需要在保存订单时创建消息,并在屏幕上显示该消息,则在呈现订单之前将保存消息。因此,您应该能够呈现订单(及其消息),就好像它发生在一个页面加载中一样(因为它确实如此)。