我在轨道4上,我正在尝试使用slug使我的标签更漂亮。
我遵循了question。但它不起作用。这是我的代码。
我为我的代码栏生成了一个slu ..
class AddSlugTotaggings < ActiveRecord::Migration
def change
add_column :tags, :slug, :string
add_index :tags, :slug
end
end
我创建了一个初始化器:
ActsAsTaggableOn::Tag.class_eval do
extend FriendlyId
friendly_id :name, use: :slugged
end
但是当我在控制台中检查我的标签时,slug列是零。
例如,从命令行:
Tag.find(1)return:
SELECT "tags".* FROM "tags" WHERE "tags"."id" = ? LIMIT 1 [["id", 1]]
=> #<Tag id: 1, name: "testtag", taggings_count: 1, slug: nil>
编辑:
这是我的控制器:tags_controller.rb
class TagsController < ApplicationController
def index
@tags = ActsAsTaggableOn::Tag.all
end
def show
@tag = ActsAsTaggableOn::Tag.find(params[:id])
@pins = Pin.tagged_with(@tag.name)
end
end
当我访问url / tags / 1时效果很好。但是,如果我尝试访问/标签/启动它不起作用是错误:
Couldn't find ActsAsTaggableOn::Tag with 'id'=startup
答案 0 :(得分:1)
默认情况下,当前版本的FriendlyId不再覆盖查找程序。
相反,你会使用:
Tag.friendly_find(1)
如果您真的需要FriendlyId 4样式查找器,那么可以添加查找器插件:
ActsAsTaggableOn::Tag.class_eval do
extend FriendlyId
friendly_id :name, use: [:slugged, :finders]
end