在部分中使用路径帮助程序会在轨道 3 中生成错误的路径



我有我的应用程序"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

请参阅文档中的详细信息。

最新更新