使用RoR,在哪里定义要在路由定义中使用的自定义方法

时间:2013-01-22 15:43:53

标签: ruby-on-rails routing

我想使用自定义方法来构建我的路线。

目前,我的routes.rb文件中包含以下内容:

Foobar::Application.routes.draw do
  def my_custom_method
    # lot
    # of
    # code
  end

  pages = my_custom_method

  pages.each do |key, slug|
    get slug => 'pages#view', as: key, defaults: { slug: slug }
  end
end

但我确定这不是它的位置。

那么我应该在哪里存储这个自定义方法?

哪种“好方法”?

3 个答案:

答案 0 :(得分:2)

Lib是个好地方。它甚至可以选择Devise maintainers

答案 1 :(得分:1)

我会说 ruby​​ 方式是扩展ActionDispatch::Routing模块并增加其功能。

答案 2 :(得分:1)

一个有效的解决方案是创建包含以下内容的文件config/initializers/routes.rb

module ActionDispatch::Routing
  class Mapper
    def my_custom_method
      # lot of code
    end
  end
end