0

我使用 FriendlyId 关注 Railscast Episode Pretty URLs

我在Rails4上并在 Friendly Id 的 Github Repo 上使用5.0 stable分支。

我按照教程:

我的模型剪辑.rb

extend FriendlyId
friendly_id :title, use: :slugged

我的迁移

rails g migration AddSlugToClips slug:string

编辑迁移:

class AddSlugToClips < ActiveRecord::Migration
  def change
    add_column :clips, :slug, :string
    add_index :clips, :slug
  end
end

使用空数据库我尝试添加一个剪辑,当我尝试打开它时:

在此处输入图像描述

我错过了什么?

如果我通过直接访问 Vine

http://localhost:3000/clips/1

我进入展示页面..

4

2 回答 2

3

好的,我找到了,它与Version of Friendly Id您使用的有关。

默认情况下不再覆盖查找器。如果你想做友好的发现,你必须做Model.friendly.find而不是Model.find.

于 2013-09-03T12:10:50.570 回答
2

这是因为当您编辑剪辑并更改其标题时,其 slug 将被更新。因此,尝试通过以下更改运行代码。

class Clip < ActiveRecord::Base
  extend FriendlyId
  friendly_id :title, use: :slugged

  def should_generate_new_friendly_id?
    new_record?
  end
end


friendly_id :title, use: :slugged # you must do MyClass.friendly.find(params[:id])
#or
friendly_id :title, use: [:slugged, :finders] # you can now do MyClass.find(params[:id])
于 2013-09-03T12:00:40.097 回答