Ruby on rails 4.2.2についての質問です
データベースに商品の一覧を登録して、それを項目についてソートするというアプリを作りたいのですが、
- Error:
CpusControllerTest#test_should_get_index:
ActionView::Template::Error: SQLite3::SQLException: no such column: nameasc: SELECT "cpus".* FROM "cpus" ORDER BY nameasc
app/views/cpus/index.html.erb:17:in _app_views_cpus_index_html_erb___572321217057038891_21850840' test/controllers/cpus_controller_test.rb:9:in
block in class:CpusControllerTest'
と出てしまいます 原因はincludesを記述していないということらしいのですが、記述してもエラーの内容は変わりませんでした 何か間違った記述をしているのでしょうか?
エラーが出ている箇所は↓です
@cpus = Cpu.includes(:name).all.order(sort_column + '' + sort_direction)
追記:
Ruby
1 def sort_direction 2 %w[asc desc].include?(params[:direction]) ? params[:direction] : "asc" 3 end 4 5 def sort_column 6 Cpu.column_names.include?(params[:sort])? params[:sort] : "name" 7 end
上のsort_direction関数の最後の"asc"を変更するとエラーの内容が変わりました
なぜかnameが先頭に付いていることになっているようで、nameascというカラムは無いということになっているようです
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。