Я пытаюсь протолкнуть мое приложение на героку. Я все еще в разработке. Я использую устройство с подтверждаемым модулем.
Когда я пытаюсь добавить пользователя с консоли heroku, я получаю эту ошибку:
Missing host to link to! Please provide :host parameter or set default_url_options[:host]
в среде тестирования и разработки у меня есть следующая строка:
environment / development.rb и environment / test.rb
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
Я не настроил что-то в производственной среде.
Я пытался подтолкнуть с
config.action_mailer.default_url_options = { :host => 'mywebsitename.com' }
config.action_mailer.default_url_options = { :host => 'heroku.mywebsitename.com' }
но это тоже не работает ..
В Интернете я вижу, что это может быть связано с ActionMailer, но я не знаю, что мне нужно настроить. Большое спасибо за вашу идею!
Отредактированный:
Здравствуй,
Чтобы не вызывать сбои моего приложения, когда я нажимаю на heroku, я помещаю это в мой env / test.rb и в мой env / dev.rb (не в env.rb, я думаю, потому что это приложение rails 3)
config.action_mailer.default_url_options = { :host => 'yourapp.heroku.com' }
Но когда я попытался создать пользователя в консоли heroku:
User.create(:username => "test", :email => "test@test.com", :password => "test1234", :password_confirmation => "test1234", :confirmed_at => "2010-11-03 14:11:15.520128")
Вот ошибки, которые я получил:
ActionView::Template::Error: Missing host to link to! Please provide :host parameter or set default_url_options[:host]
/home/slugs/.../mnt/.bundle/gems/ruby/1.8/gems/actionpack-3.0.0/lib/action_dispatch/routing/route_set.rb:473:in `url_for'
/home/slugs/.../mnt/.bundle/gems/ruby/1.8/gems/actionpack-3.0.0/lib/action_dispatch/routing/url_for.rb:132:in `url_for'
/home/slugs/.../mnt/.bundle/gems/ruby/1.8/gems/actionpack-3.0.0/lib/action_view/helpers/url_helper.rb:99:in `url_for'
/home/slugs/.../mnt/.bundle/gems/ruby/1.8/gems/actionpack-3.0.0/lib/action_dispatch/routing/route_set.rb:195:in `user_confirmation_url'
ИЗДАНО (2)
Когда я набираю логи heroku на консоли, я получаю это ==> production.log <== Поэтому я думаю, что когда кто-то развертывает на heroku, он уже работает.
Я настраиваю env / prod.rb следующим образом:
config.action_mailer.default_url_options = { :host => 'yourapp.heroku.com' }
и теперь у меня это ошибка, когда я пытаюсь создать пользователя:
Errno::EAFNOSUPPORT: Address family not supported by protocol - socket(2)
/usr/ruby1.8.7/lib/ruby/1.8/net/smtp.rb:551:in `initialize'
/usr/ruby1.8.7/lib/ruby/1.8/net/smtp.rb:551:in `open'
/usr/ruby1.8.7/lib/ruby/1.8/net/smtp.rb:551:in `do_start'
/usr/ruby1.8.7/lib/ruby/1.8/timeout.rb:62:in `timeout'
источник
:host => 'yourapp.heroku.com'
это должен быть ваш домен. Например, если ваш домен yahoo.com, то оно должно бытьyahoo.heroku.com
или , если вы уже настроили пользовательские домены это будет просто свой адресyahoo.com
config.action_mailer.default_url_options = { :host => 'yourapp.herokuapp.com'
, в отличие от простоconfig.action_mailer.default_url_options = { :host => 'yourapp.heroku.com'
?В порядке,
Сначала вы должны установить гем sendgrid с помощью этой командной строки:
Тогда вам просто нужно настроить ваши env / dev.rb и env / prod.rb следующим образом:
окр / dev.rb
окр / prod.rb
Нажимаем на мерзавца и героку. Он должен работать..
источник
method_missing': undefined method
action_mailer 'для # <Rails:: Application :: Configuration: 0x0000000241f760> (NoMethodError)Приведенный выше кодоглот делает свою работу, но мы хотели что-то более гибкое, поэтому мы сделали это:
В Heroku для запуска и тестирования мы используем несколько производственных сред, поэтому нам необходимо гибкое решение для файла среды production.rb.
В производстве.рб
Затем установите переменную среды MAILER_URL для своего приложения следующим образом
источник
Если вы работаете на кедре :
беги
heroku addons:add sendgrid:free
из своей консоли.Добавьте следующие строки
config/environments/production.rb
в ваше приложение.,
источник
Мне пришлось сделать несколько вещей, чтобы заставить его работать в производственной среде: Внутри моего
production.rb
файла (/config/environments/production.rb) я добавил следующее:Это с Rails 4 и Devise 3
источник
default_url_options
вызвала ошибку, из-за которой мои прекомпилируемые ресурсы перестали работать, просто к вашему сведению. Когда я изменил его обратно на `= {host: 'myappsname.herokuapp.com'}`, это сработало.Работающий после стольких исследований,
Не забудьте добавить адрес по умолчанию из: mail address в ваш ApplicationMailer (application_mailer.rb) как,
Добавьте приведенную ниже конфигурацию в ваш production.rb .
Включите IMAP в настройках Gmail на вкладке Пересылка IMAP / POP .
Разрешить менее безопасные приложения: ВКЛ от https://myaccount.google.com/lesssecureapps
Теперь ты в порядке. :)
источник