Class: BaseModelPolicy

Inherits:
ApplicationPolicy
  • Object
show all
Defined in:
app/policies/base_model_policy.rb

Defined Under Namespace

Classes: Scope

Instance Method Summary collapse

Instance Method Details

#attribute_is_hidden(_attribute) ⇒ Boolean

Permette di specificare se un attributo deve essere trattato come hidden durante il rendering della form. Analogamente a attribute_is_readonly è possibile definire la versione specifica per azione:

  • attribute_is_hidden_for_create?

  • attribute_is_hidden_for_update?

  • attribute_is_hidden_for_ACTION_NAME?

Parameters:

  • attribute (Symbol)

    nome dell’attributo

  • action_name (String)

    nome dell’azione

Returns:

  • (Boolean)

    true se l’attributo è hidden (deve essere renderizzato come hidden_field), false altrimenti



49
# File 'app/policies/base_model_policy.rb', line 49

def attribute_is_hidden(_attribute) = false

#attribute_is_readonly(_attribute) ⇒ Boolean

Permette di specificare se un attributo è di sola lettura durante il rendering della form. Oltre alla versione standard è possibile definire il metodo specificando il tipo di azione con il medesimo formato utilizzato negli altri metodi:

  • attribute_is_readonly_for_create?

  • attribute_is_readonly_for_update?

  • attribute_is_readonly_for_ACTION_NAME?

Parameters:

  • attribute (Symbol)

    nome dell’attributo

  • action_name (String)

    nome dell’azione

Returns:

  • (Boolean)

    true se l’attributo è di sola lettura, false altrimenti



37
# File 'app/policies/base_model_policy.rb', line 37

def attribute_is_readonly(_attribute) = false

#create?Boolean

Returns:

  • (Boolean)


4
# File 'app/policies/base_model_policy.rb', line 4

def create? = general_rule

#destroy?Boolean

Returns:

  • (Boolean)


8
# File 'app/policies/base_model_policy.rb', line 8

def destroy? = general_rule

#editable_attributesObject

Questo metodo può essere richiamato specifico per azione:

  • editable_attributes_for_create

  • editable_attributes_for_update

  • editable_attributes_for_ACTION_NAME

Quindi nella policy possiamo differenziare le due situazioni



24
# File 'app/policies/base_model_policy.rb', line 24

def editable_attributes = []

#index?Boolean

Returns:

  • (Boolean)


2
# File 'app/policies/base_model_policy.rb', line 2

def index? = general_rule

#permitted_associations_for_ransackObject



55
56
57
# File 'app/policies/base_model_policy.rb', line 55

def permitted_associations_for_ransack
  []
end

#permitted_attributesObject

Questo metodo può essere richiamato specifico per azione:

  • permitted_attributes_for_create

  • permitted_attributes_for_update

  • permitted_attributes_for_ACTION_NAME

Quindi nella policy possiamo differenziare le due situazioni



17
# File 'app/policies/base_model_policy.rb', line 17

def permitted_attributes = []

#permitted_attributes_for_ransackObject



51
52
53
# File 'app/policies/base_model_policy.rb', line 51

def permitted_attributes_for_ransack
  record.class.column_names + record.class._ransackers.keys
end

#permitted_scopes_for_ransackObject



59
# File 'app/policies/base_model_policy.rb', line 59

def permitted_scopes_for_ransack = []

#search_fieldsObject



61
# File 'app/policies/base_model_policy.rb', line 61

def search_fields = []

#search_result_fieldsObject



63
# File 'app/policies/base_model_policy.rb', line 63

def search_result_fields = []

#show?Boolean

Returns:

  • (Boolean)


10
# File 'app/policies/base_model_policy.rb', line 10

def show? = general_rule

#sortable_search_result_fieldsObject

List of attributes in index to make it sortable



67
68
69
# File 'app/policies/base_model_policy.rb', line 67

def sortable_search_result_fields
  search_result_fields
end

#update?Boolean

Returns:

  • (Boolean)


6
# File 'app/policies/base_model_policy.rb', line 6

def update? = general_rule