【问题标题】:How to set the id of a post to it's title如何将帖子的ID设置为它的标题
【发布时间】:2016-06-04 12:56:09
【问题描述】:

我猜这很明显,但我已经搜索了一段时间,但找不到任何东西。所以我想做的是让linkid@link.product 相同,我该怎么做。现在在我的links 控制器中,我有

def create
    @link = Link.new(link_params)
    @link.id = @link.product
end

但我还有 /links/5 我如何更改 ID 使其显示为 /links/product-name

【问题讨论】:

  • 如果您想将 URL 中的 id 替换为产品名称,那么我认为 gem 'friendly_id' 会有所帮助。
  • SEO friendly URLs in RoR的可能重复

标签: ruby-on-rails


【解决方案1】:

我建议在LINK 中使用“Friendly_id”,它允许将.find 与slug 一起使用。

用法:

# both will be available
/links/5
/links/product-name

安装:

# in gemfile
gem 'friendly_id', '~> 5.1.0'

安装在导轨中

bundle install
rails generate friendly_id
rails g migration add_slug_to_links slug:string:uniq
rake db:migrate

链接.rb

class Link < ActiveRecord::Base
  extend FriendlyId
  friendly_id :product, use: :slugged

控制器

def create
    @link = Link.new(link_params)
    @link.save
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-04
    • 2019-04-21
    • 1970-01-01
    • 2011-11-24
    • 2014-09-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多