Как я могу назвать Rails ruby-файл, чье имя класса имеет номера? - PullRequest
15 голосов
/ 28 марта 2012

Может ли имя класса Rails содержать числа? Например:

class Test123
end

Это допустимый класс? Я получаю ошибку uninitialized constant Test123 при попытке загрузить класс.

Ответы [ 4 ]

50 голосов
/ 04 октября 2012

Я думаю, что последний комментарий Артема Калинчука заслуживает ответа на этот неверный вопрос.

Имя класса Ruby может содержать числа.

A Rails класс долженбыть определенным в файле с правильным именем.Если я определяю класс с именем NewYear2012Controller, он должен быть определен в файле new_year2012_controller.rb вместо "new_year_2012_controller.rb".

Потому что именно так Rails inflector и auto-погрузочные работы.

7 голосов
/ 28 марта 2012

Да, Имена классов Ruby могут содержать числа . Однако, как и для всех идентификаторов в Ruby, они могут не начинаться с цифр .

Ссылка :

Идентификаторы

Примеры:

foobar    ruby_is_simple

идентификаторы Ruby состоят из алфавитов, десятичные цифры и знак подчеркивания, и начинаются с алфавиты (включая подчеркивание). Там нет никаких ограничений на длины идентификаторов Ruby.

1 голос
/ 28 июля 2014

Попробуйте сделать это:

  • переименуйте вашу модель и файл model.rb
  • добавьте table_name magic

как здесь:

class TwoProduct < ActiveRecord::Base
  self.table_name = '2_products'
end
0 голосов
/ 31 января 2014

Я не знаю об этом ...

См.

class Ab123
  def initialize(y) 
    @z = y 
  end
end

class AbCde
  def initialize(y) 
    @z = y 
  end
end

и следующие экземпляры:

Ab123.new x

или

AbCde.new x

Только последний AbCde.new x инстанцирует должным образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...