姓でフィルタリングするインデックスのテストがあります。テストは合格です:
it "finds transactions with a given customer last_name" do
customer = create :customer, last_name: "Merp"
t2 = create :transaction, location_id: @location.id
t1 = create :transaction, location_id: @location.id, customer_id: customer.id
get :index, last_name: "merp"
assigns(:transactions).should eq [t1]
end
この質問のコントローラーの重要な部分は次のとおりです。
# => @filter = {:customers=>{:last_name=>"merp"}}
# => @joins = [:customer]
@transactions = Transaction
.joins(@joins)
.where(@filter)
しかし、開発環境で手動でテストを行うと、大文字と小文字を区別する一致に対してのみ返されます (テストは大文字と小文字の一致ではないことに注意してください)。
実際にページを使用すると、大文字と小文字を区別しない検索でアクションが失敗するのに、大文字と小文字を区別しない検索を使用してテストに合格するのはなぜですか?