shallow rails namespace examples concern ruby-on-rails ruby-on-rails-3 routes custom-routes singular

ruby-on-rails - namespace - routes rails examples



¿el recurso singular de los carriles sigue siendo plural? (4)

¿La búsqueda es realmente un recurso? Si lo es, entonces lo que estás creando es una instancia de un modelo con un tipo de "búsqueda", en cuyo caso el controlador plural "busca" tiene perfecto sentido.

Sin embargo, si es un controlador que no tiene varios modelos, entonces tal vez no. En ese caso, no necesita definir las rutas con resource :search puede simplemente usar get ''search/create'' para decirle al enrutador que responda "search / create" a la acción ''create'' en su controlador ''search'' .

Tengo una ruta de búsqueda que me gustaría hacer singular, pero cuando especifico una ruta singular, todavía hace rutas de controlador en plural, ¿así es como se supone que es?

resource :search

Me da

search POST /search(.:format) {:action=>"create", :controller=>"searches"} new_search GET /search/new(.:format) {:action=>"new", :controller=>"searches"} edit_search GET /search/edit(.:format) {:action=>"edit", :controller=>"searches"} GET /search(.:format) {:action=>"show", :controller=>"searches"} PUT /search(.:format) {:action=>"update", :controller=>"searches"} DELETE /search(.:format) {:action=>"destroy", :controller=>"searches"}

Controlador plural "busca"

Solo tengo una ruta realmente ... para crear una búsqueda:

Así que lo hice: match "search" => "search#create"

Me pregunto por el futuro si todavía se supone que debo mantener el controlador en plural. Rails 3.0.9


¿Quieres que solo se genere una ruta para la creación?

Si es así:

resource :search, :only => :create

El hecho de que el controlador para el recurso REST se llame búsquedas_controller es una convención (que puede cambiar, forzando el nombre del controlador en la ruta con resource :search, :only => :create, :controller => :search , pero no vale la pena ...).


Puede solucionar esto estableciendo el plural de "buscar" para que sea incontable así en config / initializers / inflections.rb

ActiveSupport::Inflector.inflections do |inflect| inflect.uncountable %w( search ) end

Esto debería permitir ahora que la búsqueda solo se use


Sí, así es como se supone que es. Cita de la Guía Rails sobre enrutamiento:

Dado que es posible que desee utilizar el mismo controlador para una ruta (/ cuenta) singular y una ruta en plural (/ cuentas / 45), los recursos singulares se asignan a varios controladores.

http://edgeguides.rubyonrails.org/routing.html#singular-resources