2010-07-06 2 views
1

안녕하세요.habtm join을 만들려면 button_to를 사용 하시겠습니까?

레일 앱에는 사용자 및 스팟, habtm 관계 및 조인 테이블의 두 가지 모델이 있습니다. spot/show 액션에서 현재 사용자에게이 현재 위치 (체크 박스)를 방문했는지 묻는 양식을 생성하고 저장을 클릭하여 조인 테이블에 레코드를 생성 할 수 있습니다.

잘 작동하므로 (모델과 관계가 모두 좋음을 알 수 있습니다) 그러나 그렇게 우아하지는 않습니다. 체크 박스와 제출 버튼을 사용하지 않고도이 작업을 수행 할 수 있습니까? 가급적이면 버튼 하나만 있으면됩니까?

내 연구에 따르면 button_to가 그럴 수 있다고 제안했지만 실제로 작동하는 예는 찾을 수 없습니다.

감사합니다.

답변

5

예, button_to가 잘 작동합니다 :

<%= button_to "I've visited here", {:action => "visited", :id => @spot} %>

는 버튼을 생성합니다 예상대로 PARAMS에 @spot로 전달됩니다 눌렀을 때.

def visited 
    spot = Spot.find(params[:id]) 
    current_user.spots << spot 
    redirect_to :action => "show", :id => spot 
end 

희망하는 데 도움이 : 그런 다음 같은 것을 할 (당신이 표준 사용자 모델 프레임 워크를 사용하고 있기 때문에 CURRENT_USER 방법을 가정) 할 수 있습니다.

+0

감사합니다. 그게 효과가 있었어. 나는 처음에는 라우트와 일치하는 라우트가 없지만 routes.rb 파일을 갱신하고 스팟이 추가되었다는 플래쉬 메시지를 추가했다. – Ray

+0

@ 레이,이 대답이 해결책이라면, 그의 대답을 수락하여 @vagueware를 보상해야합니다. – jigfox

+0

@ 레이 - 예, 미안합니다. routes.rb 파일은 빠른 업데이트가 필요합니다. 사과... – p7r