【问题标题】:In Rails, won't url_for pick up the route from the routes file?在 Rails 中,url_for 不会从路由文件中获取路由吗?
【发布时间】:2013-08-13 21:58:16
【问题描述】:

我的情况是有很多模型,我在 rails 中使用 STI 来帮助尽量减少创建这么多具有​​相似属性的模型。

但是,我正在尝试动态生成路由,而不必复制控制器逻辑。

我正在使用 url_for(controller: controller_name, action: :show) 或任何应有的 url。但是,我只想将这些路由列在路由文件中,而不必为每个路由创建控制器文件。但看起来 url_for 期望创建实际的控制器文件。否则,它会生成错误的 url(它会生成一些 auth/failure url,我不知道它为什么这样做)。如何让它在路由文件中拾取路由并且没有单独的控制器文件?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 rails-routing


    【解决方案1】:

    我会看看Rails Routing 并熟悉resources。

    我相信您可以将一个控制器用于不同的型号。所以在你的routes.rb:

    resources :sti_model1, :controller => 'sti_controller'
    resources :sti_model2, :controller => 'sti_controller'
    resources :sti_model3, :controller => 'sti_controller'
    

    【讨论】:

    • 我需要类似“resources :restaurants, controller::businesses”之类的东西——但这不适用于 url_for(controller: controller_name, action : index)。正如我提到的,它正在生成一些垃圾网址(除非我真的有一个名为restaurants_controller 的控制器文件)
    猜你喜欢
    • 2014-04-15
    • 1970-01-01
    • 1970-01-01
    • 2015-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-21
    相关资源
    最近更新 更多