2016-05-05 28 views

Odpowiedz

14

I pomyśl o tym tak:

  • Atrybut boolowski powinien odpowiedzieć na proste pytanie tak/nie.
  • Pytanie "jest?" to prosty sposób zadawania pytań typu "tak/nie".
  • Więc logiczna nazwa atrybutu powinna zakończyć zdanie is <attribute_name>
  • Potem wystarczy wyjąć is ponieważ Ruby preferuje ? przyrostkiem „jest” nazwy metod -Style (patrz poniżej więcej), zostawiając tylko email_hidden

Więc dla konkretnego przypadku, wymienić swój atrybut tak:

  • zacząć od pytania „e-mail jest ukryty” ?. Które można przedstawić w kodzie jako: email_is_hidden.
  • Usuń is i jesteś w lewo z email_hidden
  • Ruby on Rails definiuje „źródłowe” wersję (taki, który kończy się w ?) swojego atrybutu logicznego i zwraca true/false jak oczekiwano.Tak więc, podczas gdy twój atrybut ma nazwę email_hidden w bazie danych, powinieneś go w swoim kodzie podać jako email_hidden? dla jasności i zgodnie z konwencją Ruby on Rails.
1

To będzie email_hidden?. Właśnie do tego przyzwyczaiła się społeczność Ruby.

Uwaga: na końcu znajduje się ?.

+0

Zakładam, że nie chcesz zapisywać atrybutu ze znakiem zapytania? Wiem, że w Railsach możesz wywoływać wszystkie atrybuty ze znakiem zapytania. –

+0

Widzę, o co ci chodzi. Myślałem, że masz atrybut boolowski, który inni chcieliby zapytać. Nie, nie chcesz używać 'email_hidden' lub' email_hidden? 'Jako metody ustawiającej. Chciałbyś użyć czasownika takiego jak "hide_email" dla metody, która go ukrywa, i 'email_hidden =', aby pozwolić innym ustawić go dla Ciebie. – Uzbekjon

+1

Sposób, w jaki zadałeś to pytanie ... wygląda na to, że mówisz o boolowskiej metodzie sprawdzania stanu wiadomości e-mail, a nie o metodzie wykonywania procedur jej ukrywania i zwracania wartości true w przypadku sukcesu i fałszu w przypadku niepowodzenie. –

2

Biorąc te dwa przykłady nazw daliście:

  • hide_email byłoby dobre imię dla sposobu wykonywania takiego zadania, to metoda, która realizuje wszystkie procedury, aby ukryć wiadomość e-mail w zakresie systemu . Ale nigdy nie byłoby to dobre imię dla metody boolowskiej zwracającej stan wiadomości e-mail.
  • email_hidden?, ze znakiem zapytania (?) Na końcu, byłaby poprawna nazwa metody boolowskiej wskazującej, czy wiadomość e-mail jest ukryta, czy nie.

Zawsze należy wziąć pod uwagę konwencje Rubiego, jeśli naprawdę chcesz napisać dobry kod. Pomogą ci nawet myśleć o procesach w twoim systemie.

+1

Znaki zapytania nie mogą być w zmiennych, tylko nazwy metod –

+0

@maxpleaner Dobrze powiedziane. Edytowałem go, aby wstawić słowo "method" po boolean. –

2

Smeels z kodem ruby ​​powiedział, że wszystkie metody boolowskie powinny kończyć się?

na aktywnych rekordu widać

User.valid? 

Albo w Ruby można znaleźć

[].nil? 
[].empty? 

Jeśli chcesz wiedzieć o konwencje Ruby za przeczytanie tego

http://blogs.visoftinc.com/2010/04/12/ruby-beauty-method-naming-conventions/

+0

W rubinach możesz również zobaczyć: 'obj.is_a? (Something)' lub 'hash.has_key? (: Foo)'. to znaczy, że dopuszczalne jest używanie 'is_XXX?' lub 'has_XXX?', gdy mówisz o 'self' –