2012-03-28 5 views
7

Il nome di una classe Rails può contenere numeri? Ad esempio:Come nome un file rubino di Rails il cui nome di classe ha numeri?

class Test123 
end 

È una classe valida? Ottengo un errore uninitialized constant Test123 quando provo a caricare la classe.

+13

Perché non provare e vedi? –

+0

'costante non inizializzata Test123'. Significa che non è valido? @minitech dice che lo è. –

+0

@ArtemKalinchuk: puoi mostrare il codice esatto che produce quell'errore, per favore? – Ryan

risposta

39

Penso che l'ultimo commento di Artem Kalinchuk meriti di essere la risposta a questa domanda erronea.

Un nome di classe Ruby può contenere numeri.

A Le rotaie della classe devono essere definite in un file con nome corretto. Se definisco una classe denominata NewYear2012Controller, deve essere definita nel file new_year2012_controller.rb anziché "new_year_2012_controller.rb".

Perché questo è il modo in cui funziona il deflettore e il caricamento automatico di Rails.

7

Sì, Ruby class names may contain numbers. Tuttavia, come con tutti gli identificatori in Ruby, they may not begin with numbers.

Reference:

Identificatori

Esempi:

foobar ruby_is_simple 

rubino identificatori sono costituiti alfabeti, cifre decimali, e il carattere di sottolineatura, e iniziano con alfabeti (compresi sottolineare). Non ci sono restrizioni sulle lunghezze degli identificatori di Ruby .

0

Non so su questo ...

Vedere il seguente

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

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

e le seguenti istanze:

Ab123.new x 

o

AbCde.new x 

Solo il quest'ultimo AbCde.new x istanze correttamente.

1

provare a fare questo:

  • rinominare il modello e file di model.rb
  • aggiungere nome_tabella magia

come qui:

class TwoProduct < ActiveRecord::Base 
    self.table_name = '2_products' 
end 
Problemi correlati