2012-04-01 4 views
0

나는 Rails를 처음 사용하므로 익숙하지 않습니다. 나는 '스포츠', 'home_team', 'away_team', 'datetime'의 정보를 포함하는 'Event'모델을 가지고있다.레일 의존 양식 - 모델에서 특정 항목 선택

이제 사용자가 특정 이벤트를 '따라 가기'를 원할 때 가장 좋은 방법을 찾으려고합니다. 이상적으로는, 종속 드롭 다운 목록이있는 양식을 원합니다. 예를 들어, 사용자는 먼저 '하루'를 선택한 다음 '스포츠'를 선택한 다음 해당 '일'과 '스포츠'의 '이벤트'의 관련 목록에서 선택합니다. 이 연결은 '다음'이라는 풍부한 조인 테이블에 저장됩니다.

여러 모델과 관련된 복잡한 양식에 대한 자습서를 보았지만 동일한 모델의 모든 것이 어때요? 몇 가지 관련 레코드를 얻기 위해 양식을 작성하는 방법. 나는 '스포츠'에 대한 몇 가지 고유 한 가치만을 가지고 있기 때문에 자신의 모델을 제공하는 것이 타당하지 않은 것으로 나타났습니다. 그리고 'datetime'값에서 특정 날짜의 이벤트를 쉽게 얻을 수 있습니까?

답변

0

많은 방법이 있습니다. 여기에 하나의 옵션이 있습니다 : 여러 이벤트를보고 싶으므로 아마도 색인 작업에 집중할 것입니다. 생성 및 인덱스 작용에 의해 시작, 그러나 그것을 필터링 할 몇 가지 후크를 추가,이처럼 경로를 정의했다면, 이제

def index 
    if params[:sport] 
    @events = Event.where("sport = ?",params[:sport]) 
    else 
    @events = Event.all() 
    end 
end 

을 즉 :

자원 : 이벤트

당신은 정액을 얻을 요청을 받아 들일 수있는 경로/이벤트를 갖고 있으며 인덱스 동작으로 안내합니다.

하지만 당신은 당신이 일을 선택할 수있는 형태를 원하는 경우, 형태는 기본 POST에 의해,하지만 당신은에 도달 양식을 만들 수있는 것 '/ 이벤트'응용 프로그램/뷰/이벤트/지수

즉. html.erb

<%= form_tag '/events', :method=>:get %> 

그런 다음 매개 변수를 보낼 양식 요소를 만들고 싶습니다.

은 제출 버튼

<%= submit_tag 'See Events' 

에 넣어

<%= select_tag 'sport', '<option>baseball</option><option>football</option>' %> 

그럼, 이제 '보기 이벤트'버튼을 클릭하면

<% end %> 

과 양식을 '종료'즉, 당신은 경로 '/ events'에 get 요청을 보낼 것이고, 'sports'매개 변수는 인덱스 액션에 나타나 이벤트를 필터링 할 것입니다.

모든 항목을 간단하게 유지하려면 양식을 작성한 후에 모든 이벤트를 나열하십시오.

<% @events.each do |e| %> 
    Sport: <%= e.sport %><br/> 
    Home Team: <%= e.home_team %><br/> 
    Away Team: <%= e.away_team %><br/> 
    Time: <%= e.time.strftime('%H %M') %><br/> 
<% end %>