我有一个动作,我在routes.rb
resources :statistics, only: [] do
get 'group_report/:id', to: 'statistics#group_report', as: 'group_report'
end
然后在模型中的方法中,我想返回完整的URL。
因此,我写了这个方法
root_url + group_report_statistics_path(id)
结果为"http://localhost:3000//statistics/group_report/DHo6qzUzYXw"
我认为这是一种肮脏的方式,我也需要处理双斜杠。
Rails是否提供了一些有用的方法,我可以直接获取操作的完整URL?
答案 0 :(得分:2)
使用group_report_statistics_url(id)
_path
帮助程序提供站点根目录相对路径。你应该在大部分时间都使用它。
_url
帮助程序提供绝对路径,包括协议和服务器名称。我发现在创建服务器上的应用程序链接时,我主要在电子邮件中使用这些内容。它们应主要在提供外部链接时使用。
答案 1 :(得分:1)
Rails为所有路由提供路径和url助手。
因此,如果您使用group_report_statistics_url(id)
,则会获得完整的网址。
答案 2 :(得分:0)
试试这个
File.join(root_url + group_report_statistics_path(id))
或
group_report_statistics_url(id)