2014-12-08 2 views
0

User 모델에는 모델의 has_many 관계가 있습니다.일대 다 관계가있는 FriendlyId 만들기

Class User < ActiveRecord::Base 
    has_many :posts 
end 

Class Post < ActiveRecord::Base 
    attr_accessor :user_id 

    belongs_to :user 
end 

내가 설정에 게시물의 소유자의 이름이 처음 포스트의 이름 다음에 간다 내 게시물 모델의 URL을하고 싶습니다 : 나는이를 설정하는 시도

localhost:3000/john/sample-post 

내 내 게시물 모델 내부하지만 slug_candidates 방법은 오류를 가지고 :

Class Post < ActiveRecord::Base 
    ... 
    extend FriendlyId 
    friendly_id :slug_candidates, user: [:slugged, :history] 

    def slug_candidates 
    [:name, [self.user.name, :name]] 
    end 
end 

내가 그것을 얻이 방법으로 변경해야?

+1

이것은 '포스트'슬러그와 아무런 관련이 없습니다. 당신은'routes'에서 이것을 설정할 수 있습니다. 현재 '노선'은 무엇입니까? – ptd

+0

나는 비계를 통해 상자 밖으로 나오는 편안한 자원을 사용하고 있습니다. 그래서 :'자원 : 사용자, 게시물' –

답변

1

docs 다음 예와 이것을 설명 :

또한 명명 된 매개 변수를 사용하여 경로를 앞에 수 있습니다

scope ':username' do 
    resources :posts 
end 

이는/밥/게시물 등의 URL을 제공합니다/1 컨트롤러, 도우미 및 뷰에서 경로의 사용자 이름 부분을 params[:username]으로 참조 할 수 있습니다.