动态更改路由名称

时间:2014-04-07 14:52:36

标签: ruby-on-rails routing

我必须修改路由文件才能进行SEO改进。 这是我的上下文,rails后端生成一个带有路由名称的JSON feed,我必须读取它并更改默认名称。 例如,我有这个:

get '/people' => 'people#show', as: :people

我希望更改从我的JSON Feed读取的某些值的人员。 我创建了一个类来获取我的应用程序中的JSON对象

class JSONDatabase
  def initialize(kind_of_site)
    @kind_of_site = kind_of_site
  end

  def fetch_database_remote(url)
    JSON.parse(open(url).read)
  end
end

但我如何在路线文件中访问它? 谢谢

1 个答案:

答案 0 :(得分:0)

您不一定需要修改应用程序的路线。您可以做的是定义一个通配符路径,该路径通向一个独特的控制器,您可以在其中读取更新的路径。这种方法有些苛刻,但为您提供了无需修改路线所需的无限路径。

你的config / routes.rb文件看起来像这样:

resources :defined_models
root to: 'controller#action'

# At last we define the wildcard route
get '/:route' => 'routing_controller#routing_action'

然后,在此路由操作中,我们可以查看此路由(现在在params [:route]变量中定义)是否与修改后的路由相对应。如果没有定义给定的路由,请记住重定向到404,因为使用这种方法,您将失去处理未定义路由的Rails默认方式。