Voglio creare un modello di rotaie:Override Rails controller di instradamento con lettere maiuscole nel nome del modello
rails generate model ABCThing
Quindi questo sarà creare una tabella, abc_things
. Grande. Il problema arriva con il controller e il routing. Voglio che il mio controller da:
class ABCThingsController < ApplicationController
end
Tuttavia, dopo l'aggiunta nel routes.rb
resources :abc_things, :only => [:index]
e creando il corrispondente index
vista, ottengo il seguente errore nel browser:
Expected /app/controllers/abc_things_controller.rb to define AbcThingsController
Il problema è facile da vedere ("ABCThings".tableize.classify => "AbcThing"
), ma non sono sicuro di come risolverlo. Voglio sovrascrivere il routing predefinito dei binari dalla vista al controller, ma non sono sicuro di come.
apprezzerebbe alcun aiuto (e suggerimenti per una migliore titolo della domanda!)
posso chiedere perché sulla terra si vuoi farlo? Le convenzioni sono uno dei punti di forza del RoR, perché li ha rotti? I nomi dei modelli BTW non dovrebbero essere plurali. – cthulhu
Il plurale nella generazione del modello era un errore di battitura, ma sicuramente puoi apprezzare che ci sono innumerevoli sigle di tre lettere per cui capitalizzare solo la prima lettera dell'acronimo non ha molto senso grammaticale – rwb
@cthulhu per lo stesso motivo per cui Rails supporta inflessioni. Dovrebbero essere * convenzioni *, non leggi. – mahemoff