在我的Rails application_helper.rb文件中,我有一个需要使用root_url的函数:
def get_post_link(post)
host = root_url
post_link = host + 'posts/' + post.id.to_s
return post_link
end
但是,当我使用这个功能时,我现在会收到这样的错误:
NoMethodError: undefined method `posts_path' for #<Module:0x007fa8978e54a8>
我四处寻找解决方案,我偶然发现了这个问题:
include Rails.application.routes.url_helpers
但是当我包含这一行时,出现了另一个错误:
ArgumentError: Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true
我知道我可以简单地向root_url提供:host参数来解决这个问题:root_url(:host => "localhost:3000")
但这只是为了解释为什么我想首先使用root_url。这是因为我现在只是对root_url进行硬编码,并且代码无法智能地知道我是否想要生产服务器URL或我最初想要的localhost url。
那么,有没有其他方法可以做到这一点?所以我可以正确使用我的application_helper中的root_url
谢谢!