2010-02-11 2 views
3

중첩 된 경로를 수용하기 위해 link_to_remote 태그에서 내 경로를 구조화하는 방법을 알아 내려고하고 있습니다. 그룹 모델에 속한 기사 모델이 있고 기사에 투표가 있습니다 (Vote_Fu 플러그인 사용). 먼저 기사 용 코드를 작성했는데 효과가있었습니다. 그러나 그룹 모델을 추가하고 모든 경로를 업데이트하는 과정에서 아래의 링크가 깨졌습니다. 나는 그것이 더 이상 작동하지 않을 new_question_path를 찾고 있음을 알고 있지만, 그것을 대체 할 것을 알 수는 없다.중첩 된 경로로 Link_to_remote

<%= link_to_remote "+(#{@article.votes_for})", 
    :update=>"vote", 
    :url => { :controller=>"articles", 
      :action=>"vote", 
      :id=>@article.id, 
      :vote=>"for"}, 
      :html => { :class => "up" } %> 

도움이 될 것입니다. 감사!

UPDATE : 문제가 나의 경로에서처럼

보인다. 기사 컨트롤러에 투표 방법이 있지만 그 정보를 찾지 못했습니다. routes.rb 파일을 다음으로 변경했습니다.

group.resources :articles, :member => { :vote => :get } 

문제가 해결 된 것 같습니다.

답변

1

네, 라우터의 멤버 옵션이 투표 동작을 유효한 경로로 표시합니다. 그러나 투표 모델을 추가하고 기사 has_many : votes를 말하고 싶을 수도 있습니다.

당신은 다음 VotesController있을 것입니다 및 라우터 등/기사/1/표와 같은 URL을 허용, map.resources :articles, :has_many => :votes있을 것

당신은하지만 이상 투표에 대해 별도의 모델을 가지고 과잉을 고려해 볼 수 있습니다 앱의 수명이 언제 누가 투표했는지 추적하는 것이 유용 할 수 있습니다.

그런 다음 사이트가 매우 작 으면 그 기능이 필요하지 않을 수도 있습니다. 이것은 도메인을 모델링 할 때 고려해야하는 종류의 절충 사항입니다. RESTful 리소스를 사용하면 표준에서 벗어난 사실을 강조 할 수 있습니다.