2013-05-14 1 views
0

레일즈 애플리케이션에서 경로를 생성하려고합니다. 앱에 영화 테이블 및 열 장르가 있습니다. 나는 다음과 같은 경로를 만들고 싶다 :/movies-genre-horror 그리고 모든 영화에 장르 공포를 보여준다. 실제로 가능합니까? 그렇다면 누구나 어떻게 할 수 있습니까? 튜토리얼이 있으면 좋을 것 같습니다. 나는 이렇게 만들었 :/movies/genre/horror 그리고 그것은 작동합니다. 나는 보석 friendly_id를 사용하고 친절한 URL이 아닌 장르를 바꾸기 위해 슬러그를 사용합니다.Ruby on Rails가 라우팅을 생성합니다.

+0

데이터베이스에서 일치하는 항목이 있으면 컨트롤러 내부를 볼 수있는 대체 경로를 생성 할 수 있습니다. 하지만 기본 동작을 변경하는 이유는 무엇입니까? 나는 그것이/영화/장르/공포가 좋아 보인다라고 생각한다 – 23tux

+0

당신은 정교하게 내 것이냐? 대체 경로를 생성하는 방법은 무엇입니까? 고맙습니다 – ishwr

답변

0

routes.rb에 기본 경로를 추가하십시오. 맨 마지막에 불과

match ":default" => "foo#default" 

그리고 foo_controller.rb 그것은 테스트 아니에요

def default 
    # here are your params 
    parts = params[:default].split("-") 
    controller = parts[0] 
    action = parts[1] 
    genre = parts[2] 
    records = Movie.where(genre: genre) 
    if records.count > 0 
    # redirect to your controller aciton 
    else 
    raise ActionController::RoutingError.new('Not Found') 
    end 
end 

내부를 수행하지만 난 당신이 요점을 파악한다고 생각합니다.