我正在尝试做输入的默认值
工作正常:
<%= f.input_field :quantity, default: '1' %>
但我需要f.input而不是f.input_field
<%= f.input :quantity %>
- 我尝试它与标准的html值-但在unsucessfull验证数量被1覆盖-不希望的
<%= f.input :quantity, input_html: {value: '1'} %>
- 当我删除值并且验证不成功时,填充了完整的数量-一切正常
<%= f.input :quantity %>
如何解决这个问题?是否有类似于f.input_field -:default的替代方法?还是有其他有价值的解决方案
6条答案
按热度按时间7tofc5zh1#
你可以尝试这样的东西:
0pizxfdo2#
可以使用simple_form的
selected
选项:4bbkushb3#
试试这个:
kx1ctssn4#
这是一个老问题了,但我觉得没有一个答案是可以接受的。最好的方法是在控制器的new action中设置值。
这将在新动作中将对象数量关键字指定为值1。编辑操作应该依赖于对象的持久化值,或者在验证失败并重新加载表单时依赖于params值。其他答案将在编辑时强制数量为1,即使用户最初保存为nil(如果您允许nil)。不好。我不允许nil,但会在数量字段中包含0选项。
干净多了
xa9qqrwz5#
你能做到
现在,去掉
input_html
键。kwvwclae6#
现在确定重复问题的答案是如何被引用的,但我正在分享一个Answer,我刚刚在一个问题上留下了我标记为重复的问题。
以下是这个问题的总结:
可以变成:
这将数据及其默认值的管理留在控制器中,而不是分散在整个HTML中