wikis: redirect legacy title param to show page.

Redirect /wiki_pages?title=touhou to /wiki_pages/touhou.
This commit is contained in:
evazion
2020-03-31 18:11:15 -05:00
parent 81488c7608
commit a272453bd0
2 changed files with 11 additions and 10 deletions

View File

@@ -1,6 +1,5 @@
class WikiPagesController < ApplicationController
respond_to :html, :xml, :json, :js
before_action :normalize_search_params, :only => [:index]
layout "sidebar"
def new
@@ -15,8 +14,12 @@ class WikiPagesController < ApplicationController
end
def index
@wiki_pages = authorize WikiPage.paginated_search(params)
respond_with(@wiki_pages)
if params[:title].present?
redirect_to wiki_pages_path(search: { title_normalize: params[:title] }, redirect: true)
else
@wiki_pages = authorize WikiPage.paginated_search(params)
respond_with(@wiki_pages)
end
end
def search
@@ -90,11 +93,4 @@ class WikiPagesController < ApplicationController
true
end
end
def normalize_search_params
if params[:title]
params[:search] ||= {}
params[:search][:title] = params.delete(:title)
end
end
end

View File

@@ -31,6 +31,11 @@ class WikiPagesControllerTest < ActionDispatch::IntegrationTest
assert_response :success
assert_select "tr td:first-child", text: "abc"
end
should "redirect the legacy title param to the show page" do
get wiki_pages_path(title: "abc")
assert_redirected_to wiki_pages_path(search: { title_normalize: "abc" }, redirect: true)
end
end
context "search action" do