Передача объекта контроллеру из поля выбора в рельсах - PullRequest
0 голосов
/ 06 сентября 2011

У меня есть поле выбора, в котором отображаются результаты функции поиска (результаты - это разные события). Пользователь должен иметь возможность либо просмотреть подробности события, либо выбрать событие для работы. Поскольку у меня уже есть объекты из базы данных, я хочу передать выбранный объект правильному действию контроллера. Когда я пытаюсь сделать это, объект передается в контроллер в виде строки. Код у меня ниже

<h2>Search Results</h2>

<p>
        <%= form_tag :action => :event_options %>
        <p><select name="event" size = 5>
        <%@events.each do |event|%>    
            <option value="<%= event%>"><%=event.name%></option> 
        <%end%>
        </select></p>
        <%= submit_tag "Event Details", :name=>"details" %>
        <%= submit_tag "Select Event", :name=>"select" %>

    </form> 

Действие опций событий моего контроллера выглядит так:

def event_options
  @event = params[:event]

  if params['details']
    redirect_to :action=>:view_event_detail, :event=>@event
  else
    redirect_to :action=>:select_event
  end

Я просто хочу, чтобы весь объект события передавался в действие event_options, а затем отправлялся в действие в зависимости от того, какую кнопку отправки нажал пользователь.

-Спасибо

1 Ответ

0 голосов
/ 07 сентября 2011

Значение параметра выбора не может быть объектом. Он не знает, что это за объекты. Это просто хочет строку, как «1» или «да» или что-то. Поэтому, когда вы просто вводите event, он выполняет to_s.

Вместо этого вы должны использовать event.id в качестве значения, а в контроллере просто наберите Event.find, чтобы получить объект события и работать с ним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...