[英]Rails: Using CanCanCan Abilities to hide elements
我正在使用CanCanCan寶石。 根據文檔,您可以定義能力。 那對我有用。 我想做的是限制對包含值的記錄的訪問。 就像是:
can :crud, Order, :brand == empty?
如果“訂單”表的品牌列為空,則僅應允許用戶查看記錄。 作為我的例子顯然不起作用..你會怎么做?
這不是CanCanCan
的正確用例-在SQL中使用特定查詢會更合適:
#app/models/order.rb
class Order < ActiveRecord::Base
scope :no_brand, -> { where(brand: "") }
end
#app/controllers/orders_controller.rb
class OrdersController < ApplicationController
def index
@orders = Order.no_brand
end
end
當然,您可以使用CanCanCan
,並執行以下操作 :
#app/models/ability.rb
class Ability
include CanCan::Ability
def initialize(user)
can :read, Order, brand: ""
end
end
我之所以不這樣做,是因為CanCanCan
是用於授權的 -檢查用戶是否有權執行某項操作。
您的用例最好與SQL查詢條件一起使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.