2013-09-05 4 views
0

friendly_id gem을 사용하여 Rails 4 앱에서 슬러그를 처리하고 있습니다. 간단히 말하면, 내가 임무작업 두 가지 리소스를 가지고 있다고 가정 해 봅시다. 작업임무 안에 중첩되어 있습니다. 두 모델 모두 FriendlyId를 사용하고 있으며 슬러그가 잘 작동합니다. 작업임무에 속하기 때문에 작업에는 mission_id이 있습니다.레일스가 업데이트 액션에서 중첩 된 friendly_id를 오버라이드합니다.

을 업데이트 할 때 문제가 있습니다. mission_id은 정수를 기대하고 있기 때문에, 슬러그 (A friendly_id 문자열이 아닌 정수 ID), 0으로 업데이트되는 작업mission_id에 따라 매개 변수를 통해 오는되고 전달되는 때문에 문자열.

누구든지이 문제를 해결하는 방법에 대한 아이디어가 있습니까?

routes.rb

resources :missions do 
    resources :tasks 
end 

Mission.rb

class Mission < ActiveRecord::Base 
    extend FriendlyId 
    friendly_id :name, use: :slugged 
    has_many :tasks 
end 

Task.rb

class Task < ActiveRecord::Base 
    extend FriendlyId 
    friendly_id :name, use: :slugged 
    belongs_to :mission 
end 

답변

1

finders 포함 :

friendly_id :name, use: [:slugged, :finders] 
문서에서

는 :

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 

이 버전 5.