我的模型如下:
class Question < ActiveRecord::Base
ANSWERS= ['Option 1', 'Option 2', 'Option 3', 'Option 4']
end
在视图<%= select(:question, :answer, Question::ANSWERS, {:include_blank => true}) %>
输出
<select name="question[answer]" id="question_answer">
<option value=""></option>
<option value="Option 1">Option 1</option>
<option value="Option 2">Option 2</option>
<option value="Option 3">Option 3</option>
<option value="Option 4">Option 4</option>
</select>
我试过<%= select(:question, :answer, Question::ANSWERS.collect {|d| [d, Question::ANSWERS.index(d)]}, {:include_blank => true}) %>
这会产生
<select name="question[answer]" id="question_answer">
<option value=""></option>
<option value="0">Option 1</option>
<option value="1">Option 2</option>
<option value="2">Option 3</option>
<option value="3">Option 4</option>
</select>
但我需要以下输出
<select name="question[answer]" id="question_answer">
<option value=""></option>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
<option value="4">Option 4</option>
</select>
答案 0 :(得分:3)
在第二个示例中,使用:
<%= select(:question,
:answer,
Question::ANSWERS.collect {|d| [d, Question::ANSWERS.index(d) + 1]},
{:include_blank => true}) %>
答案 1 :(得分:0)
您可以使用像这样的键值对哈希来修改数组
ANSWERS= [1=>'Option 1', 2=>'Option 2', 3=>'Option 3', 4=>'Option 4']
现在使用options_for_select并获得所需的输出。