如何在rails中显示和添加产品类别?

时间:2013-08-07 05:31:13

标签: ruby-on-rails ruby

我是RoR的新手,目前正在使用rails 3.2。我正在开发一个应用程序,例如列出所有产品,但允许用户在注册时过滤并仅查看他们喜欢的产品。

我在类别和过滤器下搜索但不太确定我在寻找什么以及最好的方法是什么。我们将不胜感激。

是否有任何具有此功能的教程/轨道广播?

2 个答案:

答案 0 :(得分:0)

最好使用gem 'cancan'进行授权。您可以允许用户查看他们喜欢的产品。

您也可以为不同类型的用户提供条件检查。

git存储库here

另见railscast episode使用cancan

答案 1 :(得分:0)

从SQL的角度来看,您应该加入productslikes。 因此,您的查询将如下所示:

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)

我想你认为你在productslikes之间有关系:

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)