Зарезервированные имена классов Rails - PullRequest
7 голосов
/ 29 марта 2009

Я пытался создать модель под названием «класс» (как в выпускном классе студентов), и столкнулся со всевозможными проблемами. Какие еще слова или имена классов следует избегать в Rails?

Некоторые ссылки, которые я нашел:
http://juicebar.wordpress.com/2007/05/30/reserved-words-in-rails/
http://railsforum.com/viewtopic.php?id=22242

Ответы [ 3 ]

6 голосов
/ 29 марта 2009

Эта страница содержит очень длинный список слов, которые нельзя использовать:

https://reservedwords.herokuapp.com/words

Поскольку «класс» очень часто встречается как имя с метапрограммированием, я думаю, что принятой альтернативой ruby ​​является «класс». Это, очевидно, отличается от вашей ситуации с выпускным классом, но, возможно, все еще полезно.

3 голосов
/ 29 марта 2009

У вас там большинство из них. Очевидно, вам также следует избегать ключевых слов Ruby:

alias   and     BEGIN   begin   break   case    class   def     defined  
do      else    elsif   END     end     ensure  false   for     if  
in      module  next    nil     not     or      redo    rescue  retry  
return  self    super   then    true    undef   unless  until   when  
while   yield  

(от http://www.zenspider.com/Languages/Ruby/QuickRef.html#4).

Кроме того, не называйте модель Transaction (но об этом предупреждает генератор!).

0 голосов
/ 29 марта 2009

Class - это встроенный класс ruby. Это то, что классы являются экземпляром.

class Foo
end

puts Foo.class
# => Class

Переопределение, которое взрывает всю структуру объекта в Ruby.

...