select_tag несколько и частичные

У меня проблема с некоторыми надоедливыми select_tags, я могу заставить их нормально отображать данные на новом, но когда дело доходит до редактирования, они не отображаются, вот код, который у меня есть на данный момент. Думаю, мне нужно использовать include?, но я не знаю, куда его поставить.

Это то, что у меня есть на данный момент для нового

<% @data = Code.find(:all, :conditions => "section = 'Location'") %>
<%= select_tag "candidate[code_ids][]", options_for_select(@data.map{|d| ["#{d.value}",d.id]}), :multiple => true %> 

А это для редактирования

<% @data = Code.find(:all, :conditions => "section = 'Location'") %>
<%= select_tag "candidate[code_ids][]", options_for_select(@data.map{|d| ["#{d.value}",d.id]},@found), :multiple => true %>         

В моем контроллере есть это, которое захватывает все коды, связанные с этим кандидатом.

@results = Candidate.all :joins => 
    "LEFT JOIN candidates_codes ON candidates.id = candidates_codes.candidate_id",
    :conditions => ["candidates.id = ?", params[:id]],
    :select => "candidates_codes.code_id"
#create an array of the candidates selected codes
@found = []
for c in @results
 @found.push(c.code_id.to_i)
end

Как я могу сделать так, чтобы у меня был только один выбор, а не один для нового и один для редактирования?


person Josh Crowder    schedule 26.07.2010    source источник
comment
Как два фрагмента кода, которые вы опубликовали, связаны друг с другом? В первом фрагменте не используются @results или @found.   -  person John Topley    schedule 26.07.2010
comment
Я также добавил правку, спасибо, Джон.   -  person Josh Crowder    schedule 26.07.2010


Ответы (1)


Спустя долгое время после того, как вы спросили ... Но именно так я смог каждый раз правильно перезагружать форму с раскрывающимся списком с множественным выбором. По общему признанию, это использует параметры, а не данные...

<%= type_list = EventConstants::EventType::to_array 
    select_tag(:event_types, options_for_select(type_list, params[:event_types]), 
               :multiple => true, :size => 5) %>

Поскольку я использую mongo_mapper, я могу просто связать запросы Plucky следующим образом:

qry_where = qry_where.where(:event_type.in => params[:event_types]) if params[:event_types] && !params[:event_types].include?("All")
person Jon Kern    schedule 24.05.2011