Ruby on rails RubyonRails路由重定向
当我们谈论铁路线路时,我想我不是专家 我有两个控制器。一个用于web操作,另一个用于api操作。Web控制器名为“Story”,Api控制器也名为“Story”,但位于其他位置“Api/v1/Story” 在web story controller中有一个名为“下载故事”的方法。两个控制器的路由为(config.rb): 问题是“如何从api控制器和参数一起调用web控制器操作(下载故事)” 我尝试的是:Ruby on rails RubyonRails路由重定向,ruby-on-rails,Ruby On Rails,当我们谈论铁路线路时,我想我不是专家 我有两个控制器。一个用于web操作,另一个用于api操作。Web控制器名为“Story”,Api控制器也名为“Story”,但位于其他位置“Api/v1/Story” 在web story controller中有一个名为“下载故事”的方法。两个控制器的路由为(config.rb): 问题是“如何从api控制器和参数一起调用web控制器操作(下载故事)” 我尝试的是: // Api controller routing namespace :api, def
// Api controller routing
namespace :api, defaults: {format: 'json'} do
namespace :v1 do
get '/download/:id', to: redirect('/stories/download_story/%{id}')
end
end
正在重定向到Web控制器的“/stories/download_story”。但我向以下机构发出请求:
'curl 'localhost:3000/api/v1/download/1'
它只给我一个简单的回答。答复是:
<html><body>You are being <a href="http://localhost:3000/stories/download_story/:id">redirected</a>.</body></html>
您正在被删除。
之后什么都没有。它没有真正重定向。解决了这个问题。应按照以下方式进行:
get '/download/:id', to: '/story#download_story
这将重定向到故事控制器的下载操作。您可以重定向
重定向到下载故事路径(params)
此外,我认为您有一个拼写错误下载路径
,而不是下载故事
@DeepakMahakale,已经尝试过了。不起作用。两个原因:->参数不可接受。->它不应该被重定向而不是重定向到?
get '/download/:id', to: '/story#download_story