2016-10-08 3 views
0

Я пытаюсь изменить Spree 3.0 FROM_EMAILИзменение Spree FROM_ADDRESS

Я добавил эту линию к моему загулял Инициализатором, но он не работает:

Spree::Store.current.mail_from_address = “[email protected]" 

Вы знаете какой-либо причине, почему нет?

Я также поставил его прямо в моей почтовой программы декоратора:

Spree::OrderMailer.class_eval do 
    def confirm_email_to_store(order, resend = false) 
    Spree::Store.current.mail_from_address = "[email protected]" 
    @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 

Это также не работает

ответ

1

Check вы можете создали несколько магазинов с помощью проверки Шпрее :: Store.all

Также , spree использовать текущий магазин как магазин, который обновился последним, поэтому вам необходимо также проверить, что также

+0

Spree :: Store.all - ]> – UKatz

+0

Мне удалось настроить это через панель администратора, а конфигурация сохранялась – UKatz

+0

mail_from_address:« [email protected] »это не обновлено. – Arvind

0

У него все работает так:

Spree::Store.current.update(mail_from_address: ENV["STORE_EMAIL"])

Глядя здесь http://www.davidverhasselt.com/set-attributes-in-activerecord/ вы можете увидеть, что:

user.name = "Роба"

Это регулярное назначение является наиболее распространенным и простым в использовании. Это устройство записи по умолчанию, созданное Rails. Атрибут name будет быть отмечен как грязный и изменение еще не отправлено в базу данных .

Конечно, гулянки Инициализаторы утверждает, что действительно сохранить в Databse, но это не так:

Если предпочтение установлен здесь он будет храниться в базе данных & кэша при инициализации.

Наконец вызова Шпрее :: 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 

Установка этого ошибка в Шпрее будет prefrable, это своего рода обходной путь

0

Вы можете просто изменить из адреса электронной почты в панели администратора в разделе Конфигурация -> Общие настройки:

Spree Admin Panel -> Configuration -> General settings