DeviseとCanCanを使用して、アプリケーションで認証と承認を設定しています。今、私は、ユーザーが特定のモデルを好き嫌いすることを可能にするようなシステムを構築しています。ユーザーが自分のコンテンツに投票するのを防ぐ最も良い方法は何ですか?Rails 3:ユーザーが自分のコンテンツに投票するのを防ぐ
現在、コンテンツ所有者が現在のユーザーと等しいかどうかコントローラにチェックインしていますが、このロジックは能力モデル上にあるはずです。
DeviseとCanCanを使用して、アプリケーションで認証と承認を設定しています。今、私は、ユーザーが特定のモデルを好き嫌いすることを可能にするようなシステムを構築しています。ユーザーが自分のコンテンツに投票するのを防ぐ最も良い方法は何ですか?Rails 3:ユーザーが自分のコンテンツに投票するのを防ぐ
現在、コンテンツ所有者が現在のユーザーと等しいかどうかコントローラにチェックインしていますが、このロジックは能力モデル上にあるはずです。
私はカンカンを使用しての経験がないが、多分あなたは、このようにブロックを使用することができます。その後、
class Ability
include CanCan::Ability
def initialize(user)
...
can :like, Product, :user_id => user.id
...
end
end
と:あなたのability.rbで
can :like, Product do |product|
product.try(:owner) != user
end
あなたはこのような何かをする必要がありますコントローラで:
@product.like if can? :like, @product
はまたあなたのビューで、あなたはその後のようなボタンを非表示にすることができます:
を<% if can? :like, @product%>
<%= link_to "Like", like_product_path(@product) %>
<% end %>
イゴール、これはアイデアだと思います。私はLikeのアクションを作成しましたが、私はあなたの例でどのように製品と組み合わせることができないのか分かりません。私の能力は次のとおりです: 'できます: のようにできます: like.try(:user)==ユーザ end' – luizbranco