在Rails窗体中,当与collection_select
一起使用时,selected
选项不起作用的原因是collection_select
会自动根据传入的数据生成选项列表,并根据传入的值选择默认选项。因此,使用selected
选项来手动设置选中项是无效的。
要解决这个问题,可以通过在collection_select
中传入一个选中项的值来实现默认选中。例如,假设我们有一个User
模型,其中有一个role
属性,可以选择的选项为admin
和user
,我们想要默认选中admin
,可以这样写:
<%= collection_select(:user, :role, User::ROLES, :to_s, :humanize, { selected: 'admin' }) %>
上述代码中,User::ROLES
是一个包含所有可选角色的数组,:to_s
表示选项的值使用to_s
方法转换,:humanize
表示选项的显示文本使用humanize
方法转换,{ selected: 'admin' }
表示默认选中admin
。
关于collection_select
的更多信息,你可以参考腾讯云的相关文档:collection_select。
领取专属 10元无门槛券
手把手带您无忧上云