2015-09-11 3 views
0

Je tente d'utiliser les rails forme select helper pour définir une option sélectionnée. La sélection rend un formulaire correctement, mais la propriété selected n'est pas respectée. Voici ce que j'ai essayé:rails forme helper ne respectant pas "sélectionné"

<%= form.select :time_of_day, options_for_select({ 
    "AM" => "1", 
    "PM" => "2"}), "2" %> 

Cela ne fonctionne pas. J'ai essayé:

<%= form.select :time_of_day, options_for_select({ 
    "AM" => "1", 
    "PM" => "2"}), {selected: "2"} %> 

Cela n'a pas fonctionné non plus. Je pense que je peux être confus, donc j'ai également essayé:

<%= form.select :time_of_day, options_for_select({ 
    "AM" => "1", 
    "PM" => "2"}), {selected: "PM"} %> 

Mais cela n'a pas fonctionné non plus. Je dois faire quelque chose de mal à un niveau plus fondamental. Comment puis-je faire fonctionner l'état sélectionné?

Répondre

0

Lors de l'utilisation avec options_for_select, la syntaxe change légèrement. Ce qui suit devrait fonctionner.

<%= form.select :time_of_day, options_for_select({"AM" => "1", "PM" => "2"}, "2") %> 

généré HTML options seraient comme ce

<option value="1">AM</option> 
<option value="2" selected="selected">PM</option> 

Pour plus d'informations, consultez options_for_select

0

permet de déclarer une variable:

time_day = { 
    "AM" => "1", 
    "PM" => "2"} 

maintenant en la forme,

<%= form.select :time_of_day, options_for_select(time_day.each_pair{|key,val| [key, val]}, :selected => "PM") %> 
0

Vous pouvez utiliser ces formes:

<%= form.select "time_of_day", [['AM',1], ['PM', 2]], { selected: 2 } %> 
# or 
<%= form.select "time_of_day", {'AM' => 1, 'PM' => 2}, { selected: 2 } %> 

Mais je recommande simplement:

<%= form.select "time_of_day", ['AM','PM'], { selected: 'AM' } %> 

Vous pouvez trouver plus d'informations sur select aide d'ici:

http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html