2012-10-08 152 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

回答