【问题标题】:change routing name dynamically动态更改路由名称
【发布时间】:2014-04-07 14:52:35
【问题描述】:

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

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

我想更改 /people 从我的 JSON 提要中读取的一些值。 我创建了一个类来获取我的应用程序中的 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

但是如何在路由文件中访问它? 谢谢

【问题讨论】:

    标签: ruby-on-rails routing


    【解决方案1】:

    您不一定需要修改应用程序的路由。您可以做的是定义通配符路由,该路由通向您读取更新路由的唯一控制器。这种方法有点骇人听闻,但无需修改路线即可为您提供所需的无限路线。

    您的 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 处理未定义路由的默认方式。

    【讨论】:

      猜你喜欢
      • 2020-12-13
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      • 2018-11-05
      • 1970-01-01
      • 2016-10-04
      • 2018-02-02
      • 2011-02-01
      相关资源
      最近更新 更多