我有我的应用程序"http://www.example.com/test"。当我点击网址时,我得到索引页面,其中显示配置文件列表。
为了显示列表中的每个配置文件,我使用了部分。每个配置文件都有指向其自己的显示页面的链接。
为了提供链接地址,我使用了这样的 Rals 路径助手
profile_path(:id => whatever_id)
问题是生成的网址是这样的:-
/profile/whatever_id
它完全跳过了"测试"的应用程序名称。我预期的网址是
/test/profile/whatever_id
谁能说出造成这种情况的可能原因是什么?
您在"应用程序名称"下的含义。如果应用使用 Passenger Apache/Nginx 模块挂载在/test 下,则 Rails 应用将遵循服务器端前缀,并自动生成正确的 URL,只有开发环境会在根范围内生成 URL。
如果您的应用程序是独立运行的或通过代理设置(如果前端Web服务器是Nginx服务器,则为典型设置),并且您希望在前缀路径下运行它,则必须使用如下所示的scope
方法:
Rails.application.routes do
scope(:path => '/test') do
# the rest of your routes go here
end
end
请参阅文档中的详细信息。