いつもお世話になります。
railsアプリケーションの、MySQLからの検索結果
にkaminariでページネーションを設定しようとしたところ、
以下のようなSyntaxエラーのSQLが発行されてエラーになりました。
Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '
users.id,
' at line 1: SELECT COUNT(users.id,
jobs.name) FROM users
INNER JOIN jobs
ON users
.id
= jobs
.user_id
コントローラ側で二つのテーブル(UsersとJobs)を結合して配列を作成。
配列をKaminari.paginate_arrayで処理して変数(@hoge)に入れ、
ビュー側でpaginateを設定すると、エラーが発生しました。
ビューのpaginateをコメントアウトすると、
ページネーションのビューも消える代わりに、エラーは表示されなくなります。
おそらく、Kaminari内部で検索結果件数を取得する部分で本SQLが発行されている思いますが、
paginate_arrayを使用しているから、エラーになるのでしょうか。
kaminariはver 0.16.3
railsはver 4.1.1
です。
正しい設定方法や解決方法がわかる方、どうぞ宜しくお願いします。
コントローラ側
lang
1 def index 2 @hoge = Kaminari.paginate_array(find).page(params[:page]).per(10) 3 end 4 def find 5 return Users.joins(:job).select("users.id, 6 jobs.name") 7 end
ビュー側
lang
1<% @hoge do |hoge| %> 2 <%= hoge.id %> 3 <%= hoge.name %> 4<% end %> 5<%= paginate @hoge %>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/07/12 15:00