预选择选择框导轨中的项目

时间:2010-06-22 18:25:09

标签: ruby-on-rails

更新

@selected
attributes: 
group_id: "29"
attributes_cache: {}
@data
attributes: 
created_at: 2010-06-19 10:16:13
term_id: "1"
updated_at: 2010-06-19 10:16:13
id: "29"
course_id: "1"

您好,

我正在尝试预选select_tag中的项目

 <%= select_tag "contact[group_ids][]",
       options_for_select(
         @data.map{ |d| [" Term #{d.term.number} #{d.term.start_date} #{d.course.course_type} #{d.course.course_name}"] },
         @selected.map{ |j| j.id }
       ),
       :multiple => true
%>

@data对象是列表中的所有项目,而@selected包含应该选择的项目的id。

为什么没有被选中的任何想法?

谢谢,Alex

2 个答案:

答案 0 :(得分:0)

我相信它只是

<%= select_tag "contact[group_ids][]",
       options_for_select(
         @data.map{ |d| [" Term #{d.term.number} #{d.term.start_date} #{d.course.course_type} #{d.course.course_name}"] },
         @selected
       ),
       :multiple => true
%>

因为railsapi.com说:

  

selected也可能是一个数组   使用a时要选择的值   多选“

修改

我认为@selected是一个ID数组,但事实并非如此。因此,您首次编写代码(使用@selected.map{ |j| j.id })的方式应该有效。

答案 1 :(得分:0)

您可以使用 - options_from_collection_for_select()

来完成此操作

http://shiningthrough.co.uk/Select-helper-methods-in-Ruby-on-Rails