私はmysqlの下で(FactoryGirlを使用して)合格した次のテストを持っています:
test "order by title" do
@library = create(:drawing_library, title: 'Accessories')
@drawing = create(:drawing, drawing_library: @library, title: 'Test Drawing')
create(:drawing, drawing_library: @library, title: 'z')
create(:drawing, drawing_library: @library, title: 'm')
create(:drawing, drawing_library: @library, title: 'b')
str = ''
@library.drawings.each do |dwg|
str += dwg.title
end
assert_equal 'bmTest Drawingz', str
end
描画モデルは次のとおりです。
class Drawing < ActiveRecord::Base
belongs_to :drawing_library
default_scope order: :title
..
end
postgresql では、このテストは次のエラーで失敗するようになりました。
<"bmTest Drawingz"> expected but was
<"Test Drawingbmz">.
これは、'Test Drawing' の T が大文字であるためと思われます。「test Drawing」に変更すると、テストに合格します。
default_scope order
大文字と小文字を区別しない方法はありますか?