2012-02-28 3 views
0

그래서 나는 has_many와 belongs_to와 관련된 주 모델과 도시 모델을 가지고있다. 아래의 관련 도시가있는 각 주마다 페이지를 표시하고 싶습니다. 레일리스트 Craiglist 같은 아이템 목록

나는 "위치"라는 페이지 컨트롤러와 페이지를 만들었 수동으로 다음 앨런 타운 페이지로 이동

<%= link_to "Allentown", allentown_path %> 

에 들어갔다. 앨런 타운 페이지에서

나는 페이지 컨트롤러

def allentown 
    @title = "Allentown Listings" 
    @tattoo_briefs = TattooBrief.where(:city_id => 1).find(:all, :order => "id DESC") 
end 

나는이 DRY 아니라는 것을 알고이 코드를 추가하여 목록을 필터링. 또한 200 개의 도시가있는 경우 매우 cumberson을 얻을 수 있습니다. 더 좋은 방법이 있습니까?

+1

오, 그런데 사람들이 당신에게 대답하기를 원한다면 당신의 질문에 대한 답을 받아들이는 것이 도움이됩니다. – corroded

답변

1

당신은 당신의 경로에 리소스를 추가해야합니다 : 본질적으로 당신에게 도시 모델에 대한 모든 편안하고 조치를 제공

routes.rb

resources :city 

. 그런 다음 컨트롤러에서 당신이 아직도 경로와 컨트롤러에서 공부하여이를 수정할 수 있습니다 it..show에 대한 액션 to..wait 귀하의 도시 페이지

cities_controller.rb

def show 
    @city = City.find(params[:id]) 
    @title = "#{@city.name} Listings" 
    @tattoo_briefs = TattooBrief.where(:city_id => params[:id]).find(:all, :order => "id DESC") 
end 

을 보여 사용 레일 API에서. 지식이 추가되면 ID 대신 도시 이름을 사용하도록 경로를 수정하여 알렌 타운에 도착할 수 있습니다.

관련 문제