-1

私はRoRを初めて使用し、現在Rails 3.2で練習しています。たとえば、すべての製品を一覧表示するが、サインアップ時にユーザーが好きな製品だけをフィルタリングして表示できるようにするアプリの開発に取り組んでいます。

カテゴリとフィルターで検索しましたが、何を探しているのか、何が最善の方法なのかよくわかりません。少しのガイダンスをいただければ幸いです。

この機能を備えたチュートリアル/レールキャストはありますか?

4

2 に答える 2

0

gem 'cancan'承認に使用するのに最適です。ユーザーが好きな製品を表示できるようにすることができます。

さまざまなタイプのユーザーに対して条件付きチェックを行うこともできます。

gitリポジトリはこちら

cancan の使用方法についてはRailscast のエピソードも参照してください。

于 2013-08-07T05:39:58.017 に答える
0

SQL の観点からは、 と を結合する必要がproductsありlikesます。したがって、クエリは次のようになります。

SELECT products.*
FROM products
INNER JOIN likes ON product.id = likes.product_id
WHERE likes.user_id = <current_user.id>

それを Rails にシフトすると ( joinswhere があります)、クエリは次のようになります。

Product.joins('INNER JOIN likes ON product.id = likes.product_id').
        where('likes.user_id = ?', current_user.id)

productsと の間に関係があると思いますlikes:

class Product < ActiveRecord::Base
  has_many :likes
end

class Like < ActiveRecord::Base
  belongs_to :product
end

単純化するjoinと、クエリは次のようになります。

Product.joins(:likes).where('likes.user_id = ?', current_user.id)
于 2013-08-07T05:47:11.450 に答える