我正在尝试从the_email
更改Spree 3.0我将此行添加到我的spree初始化程序中,但它不起作用:
Spree::Store.current.mail_from_address = “x@x.com"
你知道为什么没有原因吗?
我也把它直接放在我的邮件装饰器中:
Spree::OrderMailer.class_eval do
def confirm_email_to_store(order, resend = false)
Spree::Store.current.mail_from_address = "x@x.com"
@order = order.respond_to?(:id) ? order : Spree::Order.find(order)
subject = (resend ? "[#{Spree.t(:resend).upcase}] " : '')
subject += "#{'Will Call' if @order.will_call} #{'Just to See' if @order.just_to_see} ##{@order.number}"
mail(to: ENV['STORE_EMAIL'], from: from_address, subject: subject)
end
end
这也行不通
答案 0 :(得分:1)
检查您是否通过检查Spree :: Store.all
创建了多个商店此外,狂欢使用当前商店作为最后更新的商店,因此您还必须检查
答案 1 :(得分:1)
答案 2 :(得分:0)
以这种方式工作:
Spree::Store.current.update(mail_from_address: ENV["STORE_EMAIL"])
在这里http://www.davidverhasselt.com/set-attributes-in-activerecord/,您可以看到:
user.name =" Rob"
这种常规作业是最常见和最容易使用的。它是 Rails生成的默认写访问器。 name属性将 被标记为脏,并且不会将更改发送到数据库 爱好。强>
当然,狂欢初始化器声称要在数据库中保存,但它没有:
如果在此处设置了首选项,则它将存储在缓存中。初始化时的数据库。
最后调用Spree :: Store.current将从数据库中提取,因此任何未保存的更改都将丢失:
scope :by_url, lambda { |url| where("url like ?", "%#{url}%") }
def self.current(domain = nil)
current_store = domain ? Store.by_url(domain).first : nil
current_store || Store.default
end
修复Spree中的这个错误是可以解决的,这是一种解决方法