Friendly_id和两个slug从root开始

时间:2017-08-24 14:29:02

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

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

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

我可以创建控制器,如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

当然发生无限循环

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

1 个答案:

答案 0 :(得分:0)

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

$_POST['g-recaptcha-response']