使用 Rails 3.2.13。
我已经安装了 Nginx 和 Unicorn 来从子 URI 为 Rails 应用程序提供服务。我有一些视图需要发送资源链接,因此我使用了模型中的路径助手:
def to_exhibit()
return {
:label => self.id,
:name => self.name,
:edit_path => Rails.application.routes.url_helpers.edit_vehicle_path(self),
}
end
这将产生一个类似的 URL http://localhost:8080/vehicles/10/edit
,但我真正想要的是http://localhost:8080/app/vehicles/10/edit
(其中 /app 是我的子 URI)。edit_vehicle_path
当直接从视图调用时,这很好用。我之前通过创建自己的助手解决了这个问题:
module ApplicationHelper
def self.sub_uri_path(path)
root = Rails.application.config.relative_url_root
return '%s%s' % [ root, path ]
end
end
config.relative_url_root
在我的config/environment
文件中定义。这行得通,但必须有一个适当的方法来做到这一点,而且我不想在一年后不可避免地忘记它时维护它。