url帮助尊重应用程序子uri的资产

时间:2012-10-04 15:52:51

标签: ruby-on-rails

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

2 个答案:

答案 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)添加到每个环境来解决了这个问题像这样配置:

配置/环境/ development.rb

Rails.application.routes.default_url_options[:host] = 'localhost:3000'

配置/环境/ staging.rb

Rails.application.routes.default_url_options[:host] = 'example-staging.com/sub-uri'