2010-06-24 5 views

risposta

59

La forma piana-aggettivo è facilmente la norma in Ruby e Rails - even?, nil?, empty? e blank? per esempio. L'unico metodo del modulo is_#{something}? a cui riesco a pensare è Kernel#is_a? per determinare l'identità della classe. Quindi, per rispettare le convenzioni di denominazione standard, lascerei lo is_ su metodi booleani come questo.

+0

grazie, apprezzo il tuo commento. Tuttavia credo che 'is_xxx' sarà più appropriato per la mia applicazione. Ho incontrato un booleano chiamato "is_client". Sostituirlo con 'client' fa sembrare un'associazione ActiveRecord (anche se non ho un modello Client sul mio progetto ... per ora). – kikito

+6

Penso che ciò a cui Chuck è sfuggito è l'inclusione del punto interrogativo. Sarebbe 'client?' (Incluso il punto interrogativo) non 'client' o' is_client'. Il prefisso 'is_' è per le lingue che non supportano l'aggiunta di un punto interrogativo al nome. Definirlo è semplicemente: 'def client? ... end' – PhilT

+4

Inoltre, Rails crea metodi corrispondenti per valori booleani. Quindi se hai un campo chiamato client che è un booleano allora Rails creerà un metodo su quel modello chiamato "client?" Che ti permetterà di controllare se è impostato. – PhilT

7

Del 2 si dovrebbe scegliere quello che suona meglio per voi: User.active? o User.is_attivo?

Personalmente opterei per il primo.

Il punto Goody domanda arriva da Ruby, non Rails.

+0

Il tuo mi ha dato la soluzione al mio problema - ho finito per utilizzare quello che pensavo fosse più corretto ('is_client'). Chuck tuttavia ha risposto alla domanda - Rails (e Ruby) sembrano favorire l'aggettivo semplice. Vorrei condividere la risposta tra voi due se potessi. Posso solo darti un +1 e grazie. Inoltre, grazie per i suggerimenti sul punto interrogativo - non sapevo che provenisse dal rubino stesso. – kikito

+0

Odio davvero le risposte "segui il tuo cuore". Non risposte, davvero. – Arcolye

+1

Scelgo il dopo rispetto al precedente. User.active per me potrebbe essere un ambito denominato. Per me è solo più chiaro che .active è un ambito e .is_active è un booleano. Sì, hai il? sul metodo, ma: User.active, user.active ?, user.is_active? - l'ultimo è più facile da riconoscere contestualmente, imho. –