2017-08-24 7 views
0

私は2つのモデル - ポストとページを持ち、それらの両方に最初のスラッシュから始まるパスがあります。たとえば、次のようにFriendly_idとルートからの2つのスラッグスタート

  1. domain.com/first-slug - それはポスト
  2. domain.com/second-slugだ - それは私がContentControllerとして、コントローラを作成することができます

ですこのようなプロセスのスラッグ:

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

しかし、私は宝石にいくつかの問題があるモデルクラス。

第二の溶液に、私のようにPageControllerでとのPostControllerとルートを使用する場合:

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

無限のサイクルはもちろん

のために発生し、この非標準的なアプローチを解決するための他の方法はありますか?

答えて

0

もちろん、パスに制約を使用する必要があります。例:

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