OSDN Git Service

Fixed: wiki pages with cyrillic characters not found with postgresql (#7245).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Mon, 10 Jan 2011 18:32:04 +0000 (18:32 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Mon, 10 Jan 2011 18:32:04 +0000 (18:32 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4680 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/wiki.rb
test/fixtures/wiki_pages.yml
test/unit/wiki_test.rb

index b28694e..c83bd19 100644 (file)
@@ -45,11 +45,11 @@ class Wiki < ActiveRecord::Base
   # find the page with the given title
   def find_page(title, options = {})
     title = start_page if title.blank?
-    title = Wiki.titleize(title).downcase
-    page = pages.first(:conditions => ["LOWER(title) LIKE ?", title])
+    title = Wiki.titleize(title)
+    page = pages.first(:conditions => ["LOWER(title) LIKE LOWER(?)", title])
     if !page && !(options[:with_redirect] == false)
       # search for a redirect
-      redirect = redirects.first(:conditions => ["LOWER(title) LIKE ?", title])
+      redirect = redirects.first(:conditions => ["LOWER(title) LIKE LOWER(?)", title])
       page = find_page(redirect.redirects_to, :with_redirect => false) if redirect
     end
     page
index f1fb199..2d2e2ec 100644 (file)
@@ -62,4 +62,10 @@ wiki_pages_009:
   wiki_id: 2
   protected: false
   parent_id: 8
-  
\ No newline at end of file
+wiki_pages_010: 
+  created_on: 2007-03-08 00:18:07 +01:00
+  title: Этика_менеджмента
+  id: 10
+  wiki_id: 1
+  protected: false
+  parent_id: 
index bc5ad8a..8fa937c 100644 (file)
@@ -46,6 +46,9 @@ class WikiTest < ActiveSupport::TestCase
     assert_equal page, wiki.find_page('Another_page')
     assert_equal page, wiki.find_page('Another page')
     assert_equal page, wiki.find_page('ANOTHER page')
+    
+    page = WikiPage.find(10)
+    assert_equal page, wiki.find_page('Этика_менеджмента')
   end
   
   def test_titleize