我在rails 3.2应用程序中有一个js.erb文件,它使用url helper来填充jquery $ .ajax调用的url字段。当我在本地计算机上使用path_to_method_url / path正确指向localhost:3000 / path_to_method时,它工作正常。当我把它放在具有子uri的暂存环境中时,它指向example-staging.com/path_to_method而不是example-staging.com/sub-uri/path_to_method。任何人都知道如何让资产中的url助手尊重sub-uri?
答案 0 :(得分:0)
尝试覆盖application_controller.rb中的default_url_options
def default_url_options(options = {})
{:suburi => get_sub_uri}
end
http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-url_options
http://rails.rubyonrails.org/classes/ActionController/Base.html#M000467
答案 1 :(得分:0)
我遇到了同样的问题并通过将js.erb
文件中的url帮助从<action>_path
更改为<action>_url
然后将默认主机(包括子uri)添加到每个环境来解决了这个问题像这样配置:
Rails.application.routes.default_url_options[:host] = 'localhost:3000'
Rails.application.routes.default_url_options[:host] = 'example-staging.com/sub-uri'