2014-08-31 6 views
4

내 URL을보다 사용자에게 친숙하게하기 위해 friendly_id 보석을 다운로드했습니다. 지시 사항을 존중하기 위해 GitHub 대신 여기에 묻습니다. 여기 friendly-id : 정의되지 않은 동영상 용 슬러그

, 나는이에서

extend FriendlyId 
friendly_id :title, use: :slugged 

다음 한 내 표시 방법

이 자신의 문서 내 Model.rb 파일에서

Finders are no longer overridden by default. If you want to do friendly finds, you must 
do Model.friendly.find rather than Model.find. You can however restore FriendlyId 
4-style finders by using the :finders addon: 

을 준수

def show 
    @movie = Movie.friendly.find(params[:id]) 
end 

그들의 설명서

자신의 설명서를 참고로

def set_restaurant 
    @restaurant = Restaurant.friendly.find(params[:id]) 
end 

에서도

, 여기에 자신의 가이드입니다.

나는 테이블을 이미 만들었 기 때문에 아직 마이그레이션을 생성하지 않았습니다.

다음 단계가 무엇인지 확신 할 수 없습니까?

도움 주셔서 감사합니다.

+0

가 도움이 될 수 있습니다 : 워드 프로세서 말하는 것처럼 http://railscasts.com/episodes/314-pretty-urls-with-friendlyid – Inkling

+1

, 당신은'슬러그 필요 는 문서에 대한 History__Avoiding_404_s_When_Slugs_Change에서보세요 'column –

+0

고마워요, 비디오를 보겠습니다. – Johnson

답변

11

당신은 당신의 테이블에 슬러그 열을 추가하기 위해 마이그레이션을 실행해야합니다

class AddSlugToMovies < ActiveRecord::Migration 
    def change 
    add_column :movies, :slug, :string, unique: true 
    end 
end 

실행 rake db:migrate을 한 다음 레일 콘솔 실행 Move.find_each(&:save)에 슬러그 열을 채 웁니다. 당신이 새 테이블를 시작하는 경우

+4

어디서나 문서에서 (이것이 말할 수있는 한) 내가보기에 정말로 놀랍습니다. –

+0

그것은 종류가 있습니다 :'rails generate scaffold user name : string slug : string : uniq' – Abram

0

당신은 또한이 작업을 수행 할 수 있습니다

class CreateMovies < ActiveRecord::Migration 
    def change 
    create_table :movies do |t| 
     ... 
     t.string :slug 
     t.index :slug, unique: true, using: :btree 
    end 
    end 
end 
1

마리나 당신이 slug 필드를 추가해야한다는 맞습니다.

FriendlyID는 friendly_id_slugs 테이블에 sluggable_id 및 sluggable_type 필드가 포함되어 있기 때문에 많은 사람들이 혼란스러워합니다.

create_table "friendly_id_slugs", force: :cascade do |t| 
t.string "slug",      null: false 
t.integer "sluggable_id",    null: false 
t.string "sluggable_type", limit: 50 
t.string "scope" 
t.datetime "created_at" 
t.index ["slug", "sluggable_type", "scope"], name: "index_friendly_id_slugs_on_slug_and_sluggable_type_and_scope", unique: true 
t.index ["slug", "sluggable_type"], name: "index_friendly_id_slugs_on_slug_and_sluggable_type" 
t.index ["sluggable_id"], name: "index_friendly_id_slugs_on_sluggable_id" 
t.index ["sluggable_type"], name: "index_friendly_id_slugs_on_sluggable_type" 
end 

기본적으로 내역 모듈의 friendly_id_slugs 테이블이 생성됩니다. http://norman.github.io/friendly_id/file.Guide.html#History__Avoiding_404_s_When_Slugs_Change