2012-08-13 9 views
15

Ho un modello denominato ActiveDns. Quando eseguoRails - Il nome del modello termina con S

rails g scaffold_controller ActiveDns 

ricevo il messaggio

versione plurale del modello rilevato, utilizzando la versione singolarizzati. Esegui l'override con --force-plural.

Ora, il controllore e la vista sono generate fingendo che il singolare è ActiveDn e il plurale è ActiveDns, e ottengo cose stupide come link_to new_dn_path. L'argomento --force-plural non sembra per risolvere questo problema:

rails g scaffold_controller ActiveDns --force-plural 

risultati ancora in controllori che utilizzano variabili denominate @active_dn e punti di vista utilizzando new_dn_path, con le rotaie 3.2.3. Sto rimuovendo i file tra i tentativi utilizzando rails d scaffold_controller ActiveDns.

Qual è il modo giusto per farlo?

+2

Invece di rimuovere i file non corretti manualmente, si può anche solo 'rotaie distruggere scaffold_controller ActiveDns' –

risposta

14

Qual è il modo giusto per farlo?

Io uso inflections a document entità non numerabili.

config/inizializzatori/inflections.rb

ActiveSupport::Inflector.inflections do |inflect| 
    inflect.uncountable "ActiveDns" 
end 

poi si ottiene:

$ rails g scaffold_controller ActiveDns 
     create app/controllers/active_dns_controller.rb 
     invoke erb 
     create app/views/active_dns 
     create app/views/active_dns/index.html.erb 
     create app/views/active_dns/edit.html.erb 
     create app/views/active_dns/show.html.erb 
     create app/views/active_dns/new.html.erb 
     create app/views/active_dns/_form.html.erb 
     invoke test_unit 
     create test/functional/active_dns_controller_test.rb 
     invoke helper 
     create app/helpers/active_dns_helper.rb 
     invoke test_unit 
     create  test/unit/helpers/active_dns_helper_test.rb 

E 'questo quello che volevi?

11

ho provato con le rotaie-3.2 (credo che dovrebbe funzionare con le rotaie-3.x)

Aprire il config/initializers/inflections.rb e aggiungere una regola:

ActiveSupport::Inflector.inflections do |inflect| 
    inflect.irregular 'dns', 'dnses' 
end 

e generare il controller

rails g scaffold_controller ActiveDns 

E aggiungere percorsi al file config/routes.rb

resources :active_dnses 

Poi si dovrebbe vedere:

$ rake routes 

    active_dnses GET /active_dnses(.:format)   active_dnses#index 
       POST /active_dnses(.:format)   active_dnses#create 
new_active_dns GET /active_dnses/new(.:format)  active_dnses#new 
edit_active_dns GET /active_dnses/:id/edit(.:format) active_dnses#edit 
    active_dns GET /active_dnses/:id(.:format)  active_dnses#show 
       PUT /active_dnses/:id(.:format)  active_dnses#update 
       DELETE /active_dnses/:id(.:format)  active_dnses#destroy 
+0

funziona bene per me con le rotaie 4.2.1 –

Problemi correlati