2012-10-08 80 views
1

我了解可供咨询的净永远,永远,永远呈现一种模式,这种情况下,我需要做的渲染部分的模型中轨3.2

class Order 
    def canceled_order_message(order) 
      admin = User.find_or_create_by(email: "myemail") 
      message = Message.new(subject: I18n.t(".buyer_has_canceled_the_order"), 
         body: "#{render_to_string :partial => 'users/messages/templates/sent_by_admin/canceled_order', :locals => {:order => order}}") 
      message.send_message 
      message.save 
    end 
end 

我需要使内部消息体属性:

render_to_string :partial => 'users/messages/templates/sent_by_admin/canceled_order 

我该怎么办?

谢谢!

+2

此代码确实属于您的Order控制器,或者更好的是在Resque或Sidekiq后台作业中(因为您发送的消息可能需要一些时间)。将它放置在模型中会带来什么好处? – cdesrosiers

+0

现在正在工作。我已经修复了逻辑,现在渲染部分是从辅助方法中调用的。是一个延迟的工作任务,像'def self.canceled_order_message(order,partial)... end'一样在模型中被定义。我用'Order.delay(queue:“order”,priority:2,run_at:2.minutes.from_now).expired_message(order,canceled_pa​​rtial(order))''''从我的控制器发送partial的参数给this。工作正常:D:非常感谢! – hyperrjas

回答