Tôi đang gặp khó khăn trong việc tìm ra "Đường dẫn" để thêm URL xác nhận email vào bưu phẩm.Rails: làm cho trình trợ giúp URL tùy chỉnh hoạt động như người trợ giúp _path & _url được xây dựng
Tôi chọn không làm điều này hoàn toàn yên tĩnh bởi vì, tốt, thật khó với email văn bản vì chúng không thể yêu cầu PUT
.
vì vậy đây là routes.rb của tôi: get 'confirm/:id' => 'Confirmations#confirm'
và bưu phẩm của tôi, tôi muốn đặt email_confirm_url(@user.email_token)
nơi tôi muốn URL xảy ra.
Tôi tạo ra một helper:
#app/helpers/confirmations_helper.rb
module ConfirmationsHelper
def email_confirm_url(token)
"/confirm/#{token}"
end
end
này tất cả các công trình, loại, trừ khi tôi gọi email_confirm_url(@user.email_token)
...
Tôi nghĩa là nhận được: "/confirm/abcdefg…
"
Khi những gì tôi muốn là: http://myhostname/confirm/abcdefg…
Hoặc đang phát triển: http://localhost:3000/confirm/abcdefg…
Tôi làm cách nào để người trợ giúp URL của tôi hoạt động giống như người xây dựng trong <resource>_path
và <resource>_url
người trợ giúp trong Rails? mặc dù thực tế tôi cho rằng tôi thực sự chỉ cần cần_url
.
# chỉnh sửa: Tôi có điều này trong cấu hình môi trường của tôi:
#config/environments/development.rb
...
config.action_mailer.default_url_options = { :host => "localhost:3000" }
'ActionView :: Mẫu :: Lỗi: phương thức không xác định 'máy chủ' cho nil: NilClass' Tôi nghĩ rằng tôi nhớ điều gì đó về việc không có quyền truy cập vào' host' hoặc 'host_with_port' trong Mailers?!? Bất kỳ cách nào xung quanh điều này? – Meltemi
câu trả lời được cập nhật dựa trên nhận xét ở trên, hãy cho tôi biết nếu nó hoạt động. – zarazan