0

我需要在观察者内部渲染部分内容。

我收到此错误:

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 观察者?如果不可能,我该怎么做?

非常感谢!

4

1 回答 1

0

不,这是不可能的。观察者发生在对象级别,观察文档何时保存,然后对该文档/对象进行操作。保存对象的时间和浏览器之间没有联系(因为对象可以保存在控制台、rake 任务或任何时候加载 rails 环境)。

如果您需要在保存订单时创建一条消息,并在屏幕上显示 --- 消息的保存将在订单呈现之前进行。因此,您应该能够呈现订单(及其消息),就好像它发生在一个页面加载中一样(因为它确实发生了)。

于 2012-10-02T19:12:06.583 回答