如何在Rails助手文件中加载和使用root_url?

时间:2016-08-09 15:31:43

标签: ruby-on-rails ruby ruby-on-rails-4 helper

在我的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

谢谢!

0 个答案:

没有答案