0

見る:

<% Favorite.find_by_sql("SELECT p.* FROM favorites as f LEFT JOIN posts as p ON p.user_id = f.user_id WHERE f.user_id = ? limit 15", @user.id).reverse.each do |post| %>

次のエラーが表示されます。

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 '? limit 15' at line 1: SELECT p.* FROM favorites as f LEFT JOIN posts as p ON p.user_id = f.user_id WHERE f.user_id = ? limit 15

私が基本的にしようとしているのは、私がお気に入りにした投稿を取得することです

4

1 に答える 1

1

試す

<% Favorite.find_by_sql(["SELECT p.* FROM favorites as f LEFT JOIN posts as p ON p.user_id = f.user_id WHERE f.user_id = ? limit 15", @user.id]).reverse.each do |post| %>

クエリとそのパラメータを配列として送信して、引数の置換が発生するようにする必要があります。

このメソッドは非推奨であり、データベースに依存しないため、絶対的な最後の手段であり、メンテナンスの悪夢であることをご存知ですか。

これを行うためのモデルのメソッドである必要があります.sqlをビューに配置することは、単に軌道から外れるだけではなく、壊滅的な列車事故です.

于 2012-09-20T22:57:46.273 に答える