2014-02-10 19 views
6

Ich habe ein Problem, ich habe meine Datenbank nicht richtig geplant, also muss ich immer 'Alternativen' verwenden.Wählen Sie ein Tag mit mehreren Werten vorausgewählt - Werte manuell in die Datenbank eingefügt

Ich möchte mehrere Werte in select_tag vorgewählt. Aber ich füge die Vakanzen 'manuell' in der Tabelle Vakanz hinzu. Mein Controller:

def create 
    @hr_curriculum_generic = HrCurriculumGeneric.new(params[:hr_curriculum_generic]) 

    # Tabela CandidatosxVagas 
    unless params[:vacancy_ids].nil? 
    @vacancies_ids = params[:vacancy_ids] 

- meine Form:

@vacancies_ids.each do |vacancy_id| 
    # Armazena os id do curriculum, vaga e do cargo na tabela CandidatosxVagas 
    @candidates_vacancies = CandidatesVacancy.new 
    <% @vacancies = Vacancy.all %> 
    <%= select_tag "vacancy_ids[]", options_from_collection_for_select(Vacancy.all, "id", "title"), :multiple => true, :id => "vacancy_ids", :class => "form-control" %> 

.....

Seine Werke, aber wenn ich in bearbeiten klicken, werden die Felder nicht vorselektiert.

Jemand hat für ein Problem wie diese bestanden und kann mir helfen?

Antwort

8

options_from_collection_for_select hat 4 Parameter:

  • Sammlung
  • ID
  • Spalte
  • ausgewählt

Sie können einen einzigen Wert bereitzustellen, oder um einen Hashwert zu ausgewählten Werte zu bezeichnen. Versuchen Sie folgendes:

<%= select_tag "vacancy_ids[]", options_from_collection_for_select(Vacancy.all,"id","title",{:selected=>[1,2,3,4]})), :multiple => true, :id => "vacancy_ids", :class => "form-control" %> 

Ich bin nicht sicher, wo die Werte, die Sie versuchen, von zu wählen kommen aber Rohr sie in den ausgewählten Hash.

+0

danke für die antwort =], problem gelöst \ o / –