我有一个Attendance
模型,它有两个Boolean
数据库属性(:late
和:absent
),它们都有:default => false
。
我正在尝试制作一个只有 2 个单选按钮的表单。一份迟到,一份缺席。当然,用户只能选择两者之一。
我已经尝试了很多变化,但无法使任何工作。
谁能帮我一把?我知道我可以很容易地进行集合选择,但单选按钮将有助于用户体验。另外,出于多种原因,我需要保留 db 架构...
太感谢了!!!
我有一个Attendance
模型,它有两个Boolean
数据库属性(:late
和:absent
),它们都有:default => false
。
我正在尝试制作一个只有 2 个单选按钮的表单。一份迟到,一份缺席。当然,用户只能选择两者之一。
我已经尝试了很多变化,但无法使任何工作。
谁能帮我一把?我知道我可以很容易地进行集合选择,但单选按钮将有助于用户体验。另外,出于多种原因,我需要保留 db 架构...
太感谢了!!!
我不知道有任何 Rails 助手会支持开箱即用的所需功能。我也质疑可用性,因为如果模型既不迟到也不缺席但被意外点击,用户将无法取消选择任何一个单选按钮。
除此之外,我会使用 radio_button_tag 并提供两个选项,然后在您的控制器中相应地更新参数。这是一个基本示例:
<%= form_tag('/your/path') do %>
<%= radio_button_tag :status, 'late' %>
<%= label_tag :status_late, 'Late' %>
<%= radio_button_tag :status, 'absent' %>
<%= label_tag :status_absent, 'Absent' %>
<%= submit_tag :submit %>
<% end %>
当然,您将拥有所需的任何其他字段,然后在您的控制器中类似于:
def create
case params[:status]
when 'late'
params[:model_name][:late] = true
when 'absent'
params[:model_name][:absent] = true
end
ModelName.new(params[:model_name])
end
这些方面的东西应该可以解决问题。
@options = ["Late", "Absent"]
@selected_options = ""
和
<% @options.each do |option| %>
<%= radio_button_tag 'attendance_radio', option, option == @selected_option %> <%= label_tag 'name', option %> <br />
<% end %>
它将选定的收音机存储在attendance_radio
如果您希望表单中的值不是实际选择的值(迟到,缺席),那么您可以使用第二个参数来boolean
代替