Rails, URL без контроллера для постов и страниц - PullRequest
0 голосов
/ 28 октября 2019

В моем приложении блога rails есть посты и страницы. Я использую гем friendly_id. Можно ли иметь чистые URL-адреса без контроллера одновременно для записей и страниц? Они должны выглядеть так:

example.com / my-post example.com/my-page

Спасибо.

1 Ответ

1 голос
/ 28 октября 2019

Конечно, вы можете, но вам нужно быть предельно осторожным, чтобы избежать дублирования слагов между страницами и постами.

rout.rb

Rails.application.routes.draw do
  get ':id', to: 'pages_posts#show', as: 'page_or_post'
end

pages_posts_controller.rb

class PicturesController < ApplicationController
  def show
    if @page = Page.friendly.find(params[:id])
      render 'pages/show'
    elsif @post = Post.friendly.find(params[:id])
      render 'posts/show'
    else
      raise ActiveRecord::RecordNotFound
    end
  end
end

*. Html.erb

link_to 'link', page_or_post_path(id: object.slug)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...