rails singular resource still plural?

前端 未结 4 559
天涯浪人
天涯浪人 2021-01-31 15:22

I have a search route which I would like to make singular but when I specify a singular route it still makes plural controller routes, is this how it\'s supposed to be?

相关标签:
4条回答
  • 2021-01-31 15:48

    You could fix this by setting the plural of "search" to be uncountable so in config/initializers/inflections.rb

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

    This should now allow search to only be used

    0 讨论(0)
  • 2021-01-31 15:58

    Is the search really a resource? If it is, then what you a creating is an instance of a model with a type of "search", in which case the plural controller "searches" makes perfect sense.

    However, if it's a controller that doesn't have multiple models, then maybe not. In which case, you don't need to define the routes with resource :search you can simply use get 'search/create' to tell the router to answer "search/create" to the 'create' action in your 'search' controller.

    0 讨论(0)
  • 2021-01-31 16:00

    Do you want only one route to be generated for the creation?

    If so:

    resource :search, :only => :create
    

    The fact that the controller for the REST resource is named searches_controller is a convention (that you can change, by forcing the controller's name in the route with resource :search, :only => :create, :controller => :search, but it does not worth it...).

    0 讨论(0)
  • 2021-01-31 16:11

    Yes, that's how it's supposed to be. Quote from the Rails Guide on Routing:

    Because you might want to use the same controller for a singular route (/account) and a plural route (/accounts/45), singular resources map to plural controllers.

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

    0 讨论(0)
提交回复
热议问题