2013-09-03 4 views
0

Я следую за Railscast Episode Pretty URLs with FriendlyId.Friendly_id | Активная запись не найдена

Я на Rails4 и используя ветвь 5,0 стабильной о дружественных идентификаторах Github Repo.

Я следовал Учебник:

Моя модель Clip.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 

с пустой базой данных я пытаюсь добавить клип, и когда я пытаюсь открыть его:

enter image description here

Что мне не хватает?

Если я прямой доступ к Vine через

http://localhost:3000/clips/1 

я на шоу странице ..

+0

Можете ли вы подтвердить, что клип добавлен? – claptimes

+0

Yeap, я вижу его в Индексе и в БД. –

ответ

3

Ok я нашел его, он должен делать с Version of Friendly Id вы используете.

Искатели больше не переопределяются по умолчанию. Если вы хотите сделать дружеские находки, вы должны сделать Model.friendly.find, а не Model.find.

2

Это происходит потому, что при редактировании клипа и изменить его название его пробкового будет обновляться. Итак, попробуйте запустить код со следующими изменениями.

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]) 
+0

То есть, только если я ИЗМЕНИТЬ НАЗВАНИЕ клипа. Но в моем экземпляре я загружаю новый клип и получаю сообщение об ошибке. –

+0

Вы пробовали этот friendly_id: название, используйте:: slugged # вы должны сделать MyClass.friendly.find ('bar') –

+0

Hey amit. Наконец я узнал, что случилось. Проверьте мой ответ :) –

Смежные вопросы