使用相同的控制器名称并使用友好ID

时间:2015-12-10 04:11:23

标签: ruby-on-rails routing routes custom-routes reroute

我有一个rails应用程序,但我需要将旧的路由从php应用程序路由到我的新rails路由(因为旧的google广告绑定到它们)。我看得很远,我无法弄清楚如何解决我的问题。

我有一个视频控制器,我的新视频使用“友好ID”。现在,我有旧的路线,他们使用slugs和id。我需要将这些旧路线重定向到我的新路线。我知道我需要检查的是视频是否为零,但我正在试图弄清楚如何定义slug在哪里。

我的问题:我正在尝试执行简单的重新路由,但我的控制器正在尝试找到它并且无法找到它们(因为slug不再有效)并且它会抛出一个错误。我有一个6个视频的列表,我需要重新路由到我的新路线。

有关我缺少的任何建议吗?

路线

get '/videos/toys' => redirect('/videos')
get '/videos/88' => redirect('/videos/cool-video')
get '/videos/1388' => redirect('/videos/better-video')
get '/videos/tech-video' => redirect('/videos/technologies-video')

例如,我有一个技术视频,旧的slu ,,需要转到新的“技术视频”,或者我有一个“88”的ID需要转到“酷视频”

控制器

(bottom of controller)
private

def set_video
  @video = Video.friendly.find(params[:id])
  if @video.nil?
    **method goes here**

  end
end

1 个答案:

答案 0 :(得分:0)

正如我们在聊天中发现的那样,请确保没有$scope.progress="0";

的路线

(包括'videos'

出现在重定向上方的路径文件中,因为包含resources :videos的路线在重定向开始之前会匹配。

祝你好运!!