我有一個收集集合,有1至31個月的日子。我在我的模型中驗證。當頁面加載出生錯誤時,提示「日」不再位於我的下拉框中。收集不包括錯誤後提示
在我看來
<%= f.label :birth %>
<%= f.collection_select(:birth_day, 1..31, :to_i, :to_i , :prompt=>'Day') %>
在我的模型
validate :validate_dates
def validate_dates
b_month = self.birth_month.to_i
if (b_month == 4 || b_month == 6 || b_month == 9 || b_month == 11)
if (self.birth_day == 31)
self.errors.add(:birth, "is invalid")
end
end
end
生成的源 - 錯誤之前
<label for="individual_birth">Birth</label>
<select id="individual_birth_day" name="individual[birth_day]">
<option value="">Day</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
....
</select>
生成的源 - 錯誤後
<div class="field_with_errors"><label for="individual_birth">Birth</label></div>
<select id="individual_birth_day" name="individual[birth_day]">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
....
<option value="31" selected="selected">31</option>
</select>
請讓我知道我做錯了什麼。我需要下拉提示,因爲Day不是必填字段。謝謝!
你可以發佈前後生成的HTML元素嗎? –
我添加了生成的HTML。謝謝! –