【问题标题】:Friendly_id and two slug start from rootFriendly_id 和两个 slug 从根开始
【发布时间】:2018-02-02 11:49:19
【问题描述】:

我有两个模型 - Post 和 Page,它们都有从第一个斜杠开始的路径。例如:

  1. domain.com/first-slug - 这是帖子
  2. domain.com/second-slug - 这是页面

我可以像这样创建控制器,作为 ContentController 和处理 slug:

class ContentsController < ApplicationController
  def show
    @page = Page.find_by(slug: params[:id])
    @post = Post.find(params[:id]) unless @page
  end
end

但是我对 gems 有一些问题,它使用 controller_name 方法来定义模型类。

第二种解决方案,当我使用 PageController 和 PostController 和路由时:

get '/*id', to: 'pages#show', as: :page
get '/*id', to: 'posts#show', as: :post

当然会发生无限循环

还有其他方法可以解决这种非标准方法吗?

【问题讨论】:

    标签: ruby-on-rails slug friendly-id


    【解决方案1】:

    当然,我必须在路径中使用约束。例如:

    get '/*id', to: 'posts#show', as: :post, constraints: { id: /\d{4}\/\d{2}\/\d{2}\/\w.+/ }
    get '/*id', to: 'pages#show', as: :page
    

    【讨论】:

      猜你喜欢
      • 2015-02-12
      • 1970-01-01
      • 2013-01-06
      • 2015-07-30
      • 2014-03-30
      • 2012-02-28
      • 2012-07-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多