我有一个显示搜索功能结果的选择框(结果是不同的事件)。用户可以选择查看事件的详细信息或选择要使用的事件。由于我已经拥有数据库中的对象,我想将所选对象传递给正确的控制器操作。当我尝试这样做时,对象作为字符串传递给控制器。我的代码在下面
<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操作,然后根据用户点击的提交按钮发送到操作。
-Thanks
答案 0 :(得分:0)
选择选项的值不能是对象。它不知道对象是什么。它只需要一个字符串,如“1”或“是”或其他东西。所以,当你输入event
时,它会对它进行to_s。
您应该使用event.id
作为值,并在控制器中执行Event.find
抓取事件对象并使用它。