2012-08-13 20 views
15

Tengo un modelo llamado ActiveDns. Cuando corroRieles - El nombre del modelo termina con S

rails g scaffold_controller ActiveDns 

consigo el mensaje

Versión plural del modelo detectado, utilizando la versión singularizado. Anular con --force-plural.

Ahora, el controlador y las vistas se generan pretendiendo que el singular es ActiveDn y el plural es ActiveDns, y conseguir cosas tonto como link_to new_dn_path. El argumento --force-plural no aparece para solucionar este problema:

rails g scaffold_controller ActiveDns --force-plural 

todavía da lugar a los controladores utilizando variables con nombre @active_dn y vistas usando new_dn_path, con los carriles 3.2.3. Estoy eliminando archivos entre intentos usando rails d scaffold_controller ActiveDns.

¿Cuál es la forma correcta de hacerlo?

+2

En lugar de eliminar los archivos incorrectos manualmente, también puede simplemente 'rieles destruir scaffold_controller ActiveDns' –

Respuesta

14

¿Cuál es la forma correcta de hacerlo?

Yo uso inflections a document entidades no numeradas.

config/inicializadores/inflections.rb

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

A continuación, se obtiene:

$ 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 

¿Es esto lo que querías?

11

He probado con los carriles-3.2 (supongo que debería funcionar con los carriles-3.x)

Abra su config/initializers/inflections.rb y añadir una regla:

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

y generar el controlador de

rails g scaffold_controller ActiveDns 

Y añada rutas a su archivo config/routes.rb

resources :active_dnses 

A continuación, debería ver:

$ 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

me da buenos resultados con los carriles 4.2.1 –

Cuestiones relacionadas