Есть много способов сделать это, вот один из вариантов:
Так как вы хотите увидеть несколько событий, вы, вероятно, начнете фокусироваться на действии индекса. Начните с создания и индексирования действия, но добавьте несколько хуков для его фильтрации, т.е.
def index
if params[:sport]
@events = Event.where("sport = ?",params[:sport])
else
@events = Event.all()
end
end
Теперь, если вы определили свои маршруты следующим образом:
ресурсов: события
У вас будет маршрут / события, которые примут запрос на получение и направят вас к действию index.
Но если вам нужна форма, в которой вы можете выбирать вещи, форма будет по умолчанию POST, но вы можете создать форму, которая ПОЛУЧИТ '/ events'
т.е. в приложении / views / events / index.html.erb
<%= form_tag '/events', :method=>:get %>
Затем вы хотите создать элементы формы, которые будут отправлять параметры.
т.е.
<%= select_tag 'sport', '<option>baseball</option><option>football</option>' %>
Вставить кнопку отправки
<%= submit_tag 'See Events'
Затем "конец" вашей формы с
<% end %>
Теперь, когда вы нажмете кнопку «Просмотр событий», вы отправите запрос на получение маршрута «/ events», и в действии индекса появится параметр «sport», фильтрующий события.
Чтобы все было просто и все в виде индекса, после вашей формы вы бы перечислили все события.
<% @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 %>