我有一个包含几个不同链接的 ActionMailer 视图。我现在在 localhost:3000 上运行它,所以我已经setup_mail.rb
在 app/initializers 中调用的文件中设置了它(如此处所示):
ActionMailer::Base.default_url_options[:host] = "localhost:3000"
当我url_for
在视图中使用时,它似乎并没有拉取这个值。如果我然后添加:host => "localhost:3000"
到每个url_for
标签,它们就可以正常工作。但如果不包括在内,它们就无法工作。
我还有另一个标签 ,project_url
它看起来是:指向指定项目的链接。这个函数,包括主机值,只需project_url(@project)
. 为什么一个可以工作,而另一个不行?
从我读过的所有内容中,default_url_options[:host]
在初始化程序中设置 应该允许我省略标记:host
中的值。url_for
显然,仅添加该值并不是世界上最糟糕的事情,但这似乎没有必要,这意味着当我最终将项目托管在某个地方时,我将不得不经历并在整个地方更改该值。但更糟糕的是,这是我不明白的事情。我去这里的时候还在学习,所以我想知道我做错了什么。