2011-03-10 22 views
7

Es posible obligar a los rieles a utilizar guiones (-) en lugar de guiones bajos al referirse a los controladores.Rails nombres de controlador con guiones en lugar de guiones bajos

Actualmente existe una buena función de Inflector llamada parameterize. Permite muy buenos enlaces permanentes con todos los caracteres especiales eliminado y reemplazado con guiones ...

Sin embargo, al utilizar los controladores que tienen varias palabras (como contact_methods_controller.rb por ejemplo), se define la ruta:

resources :contact_methods 

Esto crea un mapa a /contact_methods (NO /contact-methods). Cuando mezclo estos dos, me sale URL feas como:

/contact_methods/1-preferred-email 

me gustaría tener controladores mapa rieles con guiones en lugar de subrayados. Toda mi investigación dice para mapear de forma individual cada controlador:

match 'contact-methods(/:action)' => 'contact_methods' 

pero que es realmente estúpido, en mi opinión, y se vuelve desordenado si estoy recursos de anidación ... Yo no debería tener que definir estos como costumbre rutas ¿Hay alguna configuración en ActionDispatch que reescribe estas cosas automáticamente? No puedo encontrar uno ...

Respuesta

10

En su route.rb

resources "contact-methods", :controller => :contact_methods, :as => :contact_methods 

Editar: Hay que especificar la ruta :as => ... o de lo contrario ActionDispatch le da un ataque ...

+0

que tenía para modificar tu respuesta un poco, ¡pero gracias! – sethvargo

+0

jaja Estaba llegando ... Comenté antes de empezar a editar :) – sethvargo

+0

sí, tienes razón, gracias :) – fl00r

Cuestiones relacionadas