我遵循了有关在a Ruby on Rails web application中实现邮箱管理器的本网站教程。
现在我遇到此错误:
ArgumentError in Messages#create
Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true
这是我的messages_controller.rb
class MessagesController < ApplicationController
def new
@chosen_recipient = User.find_by(id: params[:to].to_i) if params[:to]
end
def create
recipients = User.where(id: params['recipients'])
conversation = current_user.send_message(recipients, params[:message]
[:body], params[:message][:subject]).conversation
flash[:success] = "Message has been sent!"
redirect_to conversation_path(conversation)
end
end
当我完全按照本教程学习时,我不确定这是怎么回事。
错误行特别是第9行“对话= current_user.send_message ......”
我相信我必须在某个地方定义@recipients,但是本教程未指定。
我尝试过@recipients和@conversations,只会导致另一个我不熟悉的错误(仅供参考)。
所有代码都在教程中,并且也链接在顶部。
可以克隆at this link(使用AWS Cloud9)并创建用户,然后尝试向其他用户发送消息,然后单击以将消息发送给收件人,您将收到错误消息。
我试图做前面列出的建议,并尝试了@ing一些变量,但是没有用。
答案 0 :(得分:0)
您需要告诉Rails电子邮件服务器在每个应用程序环境文件中的位置。像这样:
config.action_mailer.default_url_options = { :host => "www.yourhost.com" }
此外,在此处发布问题之前,您应尝试在Google上搜索错误消息。 This was the first result代表Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true