首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何给Friendly_id插件添加id?

如何给Friendly_id插件添加id?
EN

Stack Overflow用户
提问于 2021-01-21 04:34:57
回答 1查看 59关注 0票数 1

我对生成带有title和id的slug很感兴趣。否则,我会收到像post收集路由覆盖单个post路由这样的错误。

代码语言:javascript
复制
class Post > ApplicationRecord
  extend FriendlyId
  friendly_id [:id, :title], use: :slugged
end
代码语言:javascript
复制
resources :posts do
  get "videos", on: :collection
end

Slug "videos“将与"videos”收集路线冲突。

可以生成一个带有id和title的slug吗?

代码语言:javascript
复制
"#{id}_#{title}" # Friendly Id slug
EN

Stack Overflow用户

发布于 2021-01-21 15:25:51

友好Id不能这样做,因为它在保存之前生成slug,因此它不会有id https://github.com/norman/friendly_id/blob/master/lib/friendly_id/slugged.rb#L250

您可能需要使用to_param方法对其进行自定义:

代码语言:javascript
复制
class Post < ApplicationRecord
  def to_param
    "#{id}_#{title}".parameterize
  end
end

但是接下来你需要编写自定义方法来查找记录id,就像在你的控制器中一样:

代码语言:javascript
复制
def show
  id = params[:id].split('_')[0]
  post = Post.find(id)
end
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65817243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档