2011-10-09 6 views
0

이벤트 데이터베이스에있는 모든 이벤트를 나열하는 페이지가 있습니다. "내 이벤트"라는 버튼을 만들고 싶습니다. 눌렀을 때 페이지가 다시로드되지만 current_user에 속한 이벤트 만 표시됩니다.페이지의 데이터를 정리하는 버튼을 만들려면 어떻게해야합니까?

<%= button_to "My Events", events_path(:my_events => true) %> 

을 한 후 나는 my_events에 해당하는 경우 @Events를 필터링하는 events_controller 지수에 if 문을 추가 할 거라고 :이 같은 일을 시도. 그러나이 버튼은 어떤 이유로 새로운 이벤트를 만듭니다.

더 좋은 방법이 있나요?
이 이벤트 컨트롤러에 액션 find_my_events을 추가합니다 :

답변

0

이 당신이 원하는 것을 할 것입니다
find_my_events
@events = current_user.events(:all)
render :action => 'index'
end

이제보기에하는 때 form_tag를 만들고 연결 find_my_events :
(routes.rb에 새 경로를 만들거나 controller => 'events', : action => 'find_my_even을 사용할 수 있습니다. ts ', 전 선호)
양식에 submit_tag를 추가하십시오.

이제 양식을 제출하면 페이지가 새로 고쳐지고 현재 사용자의 이벤트가 페치됩니다.

부울 숨겨진 필드를 사용하여 양식을 색인 작업에 제출할 수도 있습니다. 이제 인덱스 동작에서 부울 필드가 true로 설정되어 있는지 확인하고, 그렇다면 current_user 또는 모든 이벤트에 대한 이벤트를 표시합니다.

+0

그 도우미는 어디에 있습니까? 도우미 호출시로드 할 페이지를 어떻게 알 수 있습니까? –

+0

이것은 작동하지 않았습니다. 나는이 오류를 가지고있다 : # <# : 0x000001032e35c0> –

+0

에 대해서는 미정도 된 지역 변수 또는 메소드'find_my_events_path '가 없다. 내가 말한 것처럼 내 이벤트 컨트롤러에서 액션을 만들었습니다. 그런 다음 위에 표시된 버튼을 index.html.erb 이벤트보기에 추가합니다. 이것은 내가 가진 오류입니다 : 정의되지 않은 지역 변수 또는 메서드 # find_my_events for # # # 클래스 : 0x00000105145b30> : 0x00000105143d80> –

관련 문제