Saya mencoba untuk mendorong aplikasi saya di heroku. Saya masih di dev. Saya menggunakan merancang dengan modul yang dapat dikonfirmasi.
Ketika saya mencoba menambahkan pengguna dengan konsol heroku saya mendapatkan kesalahan ini:
Missing host to link to! Please provide :host parameter or set default_url_options[:host]
dalam lingkungan pengujian dan pengembangan saya memiliki baris berikut:
lingkungan / development.rb dan lingkungan / test.rb
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
Saya tidak mengatur sesuatu di lingkungan produksi.
Saya sudah mencoba untuk mendorong
config.action_mailer.default_url_options = { :host => 'mywebsitename.com' }
config.action_mailer.default_url_options = { :host => 'heroku.mywebsitename.com' }
tapi itu tidak berhasil juga ..
Saya melihat di web bahwa itu mungkin terkait dengan ActionMailer tapi saya tidak tahu apa yang harus saya konfigurasi. Terima kasih banyak atas ide Anda!
Diedit:
Hai,
Agar tidak membuat aplikasi saya crash ketika saya mendorong heroku saya meletakkan ini di env / test.rb saya dan env / dev.rb saya (tidak di env.rb saya pikir itu karena itu adalah aplikasi rails 3)
config.action_mailer.default_url_options = { :host => 'yourapp.heroku.com' }
Tetapi ketika saya mencoba membuat pengguna di konsol heroku:
User.create(:username => "test", :email => "[email protected]", :password => "test1234", :password_confirmation => "test1234", :confirmed_at => "2010-11-03 14:11:15.520128")
berikut adalah kesalahan yang saya dapatkan:
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'
Diedit (2)
Ketika saya mengetik log heroku di konsol saya mendapatkan ini ==> production.log <== Jadi saya pikir ketika seseorang menyebarkan heroku itu sudah dalam produksi.
Saya mengkonfigurasi env / prod.rb seperti ini:
config.action_mailer.default_url_options = { :host => 'yourapp.heroku.com' }
dan sekarang saya memiliki ini sebagai kesalahan ketika saya mencoba membuat Pengguna:
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'
sumber
:host => 'yourapp.heroku.com'
ini harus menjadi domain Anda. Misalnya, jika domain Anda adalah yahoo.com, maka seharusnyayahoo.heroku.com
atau jika Anda sudah menyiapkan domain khusus, itu hanya akan menjadi url Andayahoo.com
config.action_mailer.default_url_options = { :host => 'yourapp.herokuapp.com'
, yang bertentangan dengan adilconfig.action_mailer.default_url_options = { :host => 'yourapp.heroku.com'
?Baik,
Pertama, Anda harus menginstal permata sendgrid dengan baris perintah ini:
Maka Anda hanya perlu mengkonfigurasi env / dev.rb dan env / prod.rb seperti ini:
env / dev.rb
env / prod.rb
Dorong git dan heroku. Itu harus bekerja ..
sumber
method_missing': undefined method
action_mailer 'for # <Rails:: Application :: Configuration: 0x0000000241f760> (NoMethodError)Anwser Codeglot di atas berfungsi, tetapi kami menginginkan sesuatu yang sedikit lebih fleksibel, jadi kami melakukan ini:
Di Heroku, kami menjalankan beberapa lingkungan Produksi untuk pementasan dan pengujian, jadi kami membutuhkan solusi yang fleksibel untuk file lingkungan production.rb.
Dalam produksi
Kemudian atur variabel lingkungan MAILER_URL untuk aplikasi Anda seperti itu
sumber
Jika Anda menggunakan Cedar :
lari
heroku addons:add sendgrid:free
dari konsol Anda.Tambahkan baris berikut ke
config/environments/production.rb
dalam aplikasi Anda..
sumber
Saya harus melakukan sejumlah hal agar dapat berfungsi di lingkungan produksi : Di dalam
production.rb
file saya (/config/environmentments/production.rb) saya menambahkan yang berikut ini:Ini dengan Rails 4 dan Rancangan 3
sumber
default_url_options
menyebabkan kesalahan yang membuat aset yang dikompilasi gagal, hanya saja. Ketika saya mengubahnya kembali ke `= {host: 'myappsname.herokuapp.com'}` itu berhasil.Yang berhasil setelah begitu banyak penelitian,
Jangan lupa untuk menambahkan default dari: alamat email di ApplicationMailer Anda (application_mailer.rb) sebagai,
Tambahkan konfigurasi di bawah ini di production.rb Anda .
Aktifkan IMAP dari pengaturan Gmail Anda di tab Penerusan IMAP / POP .
Izinkan aplikasi yang kurang aman: HIDUP dari https://myaccount.google.com/lesssecureapps
Anda sekarang baik untuk pergi. :)
sumber