我在 rails 3.2 应用程序中有一个 js.erb 文件,该文件使用 url 帮助程序填写 jquery $.ajax 调用的 url 字段。当我在本地机器上使用正确指向 localhost:3000/path_to_method 的 path_to_method_url/path 时,它工作正常。当我将它放在具有子 uri 的暂存环境中时,它指向 example-staging.com/path_to_method 而不是 example-staging.com/sub-uri/path_to_method。任何人都知道如何让资产中的 url 助手尊重 sub-uri 吗?
问问题
437 次
2 回答
0
尝试覆盖default_url_options
您的 application_controller.rb
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
于 2012-10-04T22:48:42.873 回答
0
我遇到了同样的问题,并通过将文件中的 url 帮助js.erb
程序从<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'
于 2012-10-12T03:20:02.900 回答