mirror of
https://github.com/discourse/discourse.git
synced 2024-11-23 10:59:51 +08:00
Fix a case when the wrong topic is loaded because the slug starts with a number
This commit is contained in:
parent
f2c4b3e37f
commit
86012ac579
|
@ -111,8 +111,8 @@ class ListController < ApplicationController
|
|||
private
|
||||
|
||||
def set_category
|
||||
category_slug = params.fetch(:category)
|
||||
@category = Category.where("slug = ? or id = ?", category_slug, category_slug.to_i).includes(:featured_users).first
|
||||
slug = params.fetch(:category)
|
||||
@category = Category.where("slug = ?", slug).includes(:featured_users).first || Category.where("id = ?", slug.to_i).includes(:featured_users).first
|
||||
end
|
||||
|
||||
def request_is_for_uncategorized?
|
||||
|
|
|
@ -63,6 +63,21 @@ describe ListController do
|
|||
it { should respond_with(:success) }
|
||||
end
|
||||
|
||||
context 'another category exists with a number at the beginning of its name' do
|
||||
# One category has another category's id at the beginning of its name
|
||||
let!(:other_category) { Fabricate(:category, name: "#{category.id} name") }
|
||||
|
||||
before do
|
||||
xhr :get, :category, category: other_category.slug
|
||||
end
|
||||
|
||||
it { should respond_with(:success) }
|
||||
|
||||
it 'uses the correct category' do
|
||||
assigns(:category).should == other_category
|
||||
end
|
||||
end
|
||||
|
||||
describe 'feed' do
|
||||
it 'renders RSS' do
|
||||
get :category_feed, category: category.slug, format: :rss
|
||||
|
|
Loading…
Reference in New Issue
Block a user