1

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

4

2 回答 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 回答