0

으로 변경하면 표준 리디렉션이 매번 :id으로 변경됩니다. 어떻게 그것을 own_key로 변경할 수 있습니까? ID표준 라우팅을

own_key로 리디렉션을 변경할 수있는 방법이 있나요 : 우리가 리디렉션 목록 /로 이동 새 항목을/작성하는 경우 우리는 우리의 경로

resources :lists 
match '/:own_key' => 'lists/show' 

을 설계했다?

def create 
    @list = List.new(params[:list]) 
    @list = List.create!(params[:list]) 
    respond_with(@list) 
end 
+0

과 함께 할 수 있습니까? – jdoe

+0

respond_with는 json, xml 또는 atom과 같은 더 많은 형식을 다시 제공 할 수 있기 때문에 사용합니다. 이제 질문이 돌아 왔습니다. routes.rb는'resources : lists'를 포함하고 있습니다. 이것은 항상': id'입니다. 모든 경로 매뉴얼을 덮어 쓰거나 configoption이 있습니까? – amarradi

+2

': id'는 하드 코드되어 있습니다. 그러나 당신은'respond_with'에 html 응답을 오버라이드하는 블록을 제공 할 수 있습니다 :'{| format | format.html {redirect_to '/ path'}}'. 다른 형식은 변경되지 않습니다. – jdoe

답변

2

각 모델은 당신이 /:own_key에, 경로가 /:id에서 변경 있는지 확인합니다

list.rb

class Bar < ActiveRecord::Base 
    def to_param 
    "#{own_key}.parameterize" 
    end 
end 

을 무시할 수 to_param라는 메소드가 있습니다.

참고 : 이것은 매개 변수의 값만 변경하고 매개 변수 이름은 변경하지 않습니다.

예 : fooown_key 값 액세서하려면 show 액션이 /lists/fooparams[:own_key]이되지 않습니다. 당신은 params[:id]에 의해 own_key 값에 액세스하지만 당신은`redirect_to` 대신`respond_with`의 사용에서 당신을 중지 무엇을 한 후 재 지정하려면 params[:own_key]

Parameters: {"id"=>"foo"} 
+0

이것은 위대합니다. 고마워요. – amarradi