私はこのモデルを手に入れました:
class Post
def rating_by(ip_address, user = nil)
if user
ratings.where("ratings.user_id = ?", user.id).first
else
ratings.where("ratings.ip_address = ?", ip_address).first
end
end
end
お気づきかもしれませんが、ユーザーと訪問者の両方による評価を許可しています。
user_rating
追加の属性を持つ json として投稿を出力したいと思います。
これは私の現在のコントローラーです:
@posts = Post.trending(10)
respond_to do |format|
format.html
format.json { render json: @posts.to_json }
end
もちろん、これは表示されませんが、to_json
の:methods
オプションを使用してパラメーターを指定する可能性があるかどうかを知りたいです。
@posts.to_json(extra: {user_rating: "rating_by(#{request.remote_ip}, #{@current_user.id})"})
だから私は次のようなものになります:
[{ id: 54, title: "Foo", user_rating: 8 }]
他の提案は大歓迎です!