Daniel's Log
Sign in
Rails Routes: Redirect
Daniel
·
2016-04-25
·
559 Visits
·
Edit
介紹 RoR 一些比較不常見的 route 設定,原有 url route: ``` ruby resource :posts ``` `posts_path(locale: :zh)` 會轉換為 path `/posts?locale=zh` 現在要將這個 path 改為 `/zh/blogs` , 其中 zh 仍然對應 params 中的 locale 首先要將 `resources :posts` 放在 scope /:locale 中,再將 path 改為新的 blogs ``` ruby scope "/:locale" do resource :posts, path: :blogs end ``` 此時 `posts_path(locale: :zh)` 就會變成 `/zh/blogs` 然後因為 route 改變,舊的 path `/posts?locale=zh` 不再對應任何 action,要將這些連接跳轉到新的 path 上: ``` ruby get '/posts', to: redirect {|params, request| "/#{request.params[:locale].blank? ? :zh : request.params[:locale] }/blogs"} ``` 另外關於 route 的次序,跳轉的 routing 必須在 scope /:locale 之後 ``` ruby scope "/:locale" do resource :posts, path: :blogs end get '/posts', to: redirect {|params, request| "/#{request.params[:locale].blank? ? :zh : request.params[:locale] }/blogs"} ```
[
Read More
]
---- END ----
Recent Posts
Rails Singleton
机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 1)
Rails Vim 環境的搭建
XMLHttpRequest (XHR) 和 AJAX
Rails Routes: Redirect