我有一个User
模型,它为new
和edit
操作渲染了一个form
的原型(使用simple_form),下面是它的内容:
<div>
<%= simple_form_for @user do |f| %>
<%= f.error_notification %>
<%= f.input :its %>
<%= f.input :name %>
<% if action_name == "edit" %>
<%= f.input :apartment, collection: collection_of(User.apartments), as: :radio_buttons %>
<% else %>
<%= f.input :apartment, input_html: {checked: false}, collection: collection_of(User.apartments), as: :radio_buttons %>
<% end %>
<%= f.input :flat_no %>
<%= f.input :mobile %>
<%= f.input :email %>
<%= f.button :submit %>
<% end %>
</div>
字符串
单选按钮字段对于这两个操作是类似的,但有一个区别,我不希望字段中的值在new
操作中被预先选择。这是因为我在数据库级别设置了default:
,它会自动选择该值。表单中的checked
HTML属性会检查菜单中的特定值。要取消选中它,属性checked:
必须设置为false
或删除。
我想定义一次单选按钮字段,不管它是什么动作。如果action_name
== new
,它必须被取消选中,否则选中。那么,我如何重构这个字段?
我试着这样做:
<%= f.input :apartment, collection: collection_of(Sabeel.apartments), as: :radio_buttons, input_html: {checked: action_name == "edit"} %>
型
但这会检查edit
表单中单选按钮字段的错误值。它会检查表单中的最后一个值。这是因为HTML中的所有checked
属性都设置为值checked
,并且单选按钮类型只能通过一个值进行检查,最后一个值正在被检查。但是对于new
操作,checked
属性没有被设置,因此默认情况下没有选择任何值。
任何其他想法也欢迎!谢谢!
1条答案
按热度按时间pdtvr36n1#
当你创建
@user
的时候,我会在你的控制器中这样做:字符串