0
我正在使用CanCanCan創業板。根據documentation你可以定義能力。這對我有用。我想要做的是限制對包含值的記錄的訪問。例如:Rails:使用CanCanCan能力來隱藏元素
can :crud, Order, :brand == empty?
如果訂單表的品牌欄爲空,則只應允許用戶查看該記錄。因爲我的例子顯然不起作用。你會怎麼做?
我正在使用CanCanCan創業板。根據documentation你可以定義能力。這對我有用。我想要做的是限制對包含值的記錄的訪問。例如:Rails:使用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
,並做到這一點,你會做this:
#app/models/ability.rb
class Ability
include CanCan::Ability
def initialize(user)
can :read, Order, brand: ""
end
end
之所以我不會做那是因爲CanCanCan
意思是授權 - 檢查用戶是否有permission做某事。
您的用例最適合與SQL查詢條件一起使用。