2016-03-14 9 views
0

Я нахожусь на рельсах 4, и я пытаюсь использовать slug, чтобы сделать мои метки ярче.Rails: Friendly_id на тегах с act_as_taggable_on

Я следовал за этим question. Но это не сработает. Вот мой код.

Я создал пулю для столбца моих тегов.

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 

Но когда я осматриваю свои теги в консоли, колонка слизень равна нулю.

Например, из командной строки:

Tag.find (1) возвратного:

SELECT "tags".* FROM "tags" WHERE "tags"."id" = ? LIMIT 1 [["id", 1]] 
=> #<Tag id: 1, name: "testtag", taggings_count: 1, slug: nil> 

Edit:

Вот мой контроллер: 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 

ответ

1

Текущая версия FriendlyId больше не перекрывает искатели по умолчанию.

Вместо этого можно использовать:

Tag.friendly_find(1) 

Если вам действительно нужны искатели FriendlyId 4 стиля, чем вы можете добавить искатели аддон:

ActsAsTaggableOn::Tag.class_eval do 
    extend FriendlyId 
    friendly_id :name, use: [:slugged, :finders] 
end 
+0

Он по-прежнему не работает. Я отредактировал мой вопрос жестко. – zacchj