ruby-on-rails - Rails,没有控制器的帖子和页面的网址
问题描述
在我的 Rails 博客应用程序中,我有帖子和页面。我正在使用friendly_id gem。是否可以在没有控制器的情况下同时为帖子和页面提供干净的 URL?它们应该是这样的:
example.com/my-post example.com/my-page
谢谢你。
解决方案
当然可以,但是您需要非常小心,以避免页面和帖子之间出现重复的 slug。
路线.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)
推荐阅读
- reactjs - 如果没有使用 Typescript 传递给 NextJS 中的功能组件,如何设置道具的默认值
- javascript - 在同一点击中创建和拖动
- database - Wordpress 插件将数据添加到数据库,然后调用数据
- go - 如何缓存一个 TCP 反向代理数据传输?
- scala - ScalaJs + ZIO:程序适用于 sbt 1.2.8 但不是 >= 1.3
- swift - 如何在 Swift 中设置计时器?
- python - 无法在使用 selenium 和 python 的谷歌会议中点击“要求加入”
- javascript - 解密使用 javascript:void(0) 隐藏的 href 链接
- c# - 如何仅在玩家移动时使对象移动
- macos - Docker 桌面不启动 (Mac Big Sur)