使用simple_form输入的默认值

问题描述 投票:54回答:4

我试图做输入的默认值

工作正常:

<%= f.input_field :quantity, default: '1' %> 

但我需要f.input而不是f.input_field

<%= f.input :quantity %> 

  • 我尝试使用标准的html值 - 但在不成功的验证数量被1覆盖 - 不希望的 qazxsw poi
  • 当我删除价值和验证不成功的数量填充 - 一切都很好 qazxsw poi

怎么解决这个?有没有像f.input_field那样的选择 - :默认?还是有其他有价值的解决方案?

ruby-on-rails ruby-on-rails-4 erb simple-form
4个回答
134
投票

你可以尝试这样的事情:

<%= f.input :quantity, input_html: {value: '1'} %>

3
投票

您可以使用simple_form的<%= f.input :quantity %> 选项:<%= f.input :quantity, input_html: {value: f.object.quantity || '1'} %>


1
投票

试试这个:

selected

1
投票

你可以做


<%= f.input :quantity, selected: f.object.quantity || '1' %>

如今,离开= f.input : quantity, input_html: { value: (f.object.quantity.present?) ? f.object.quantity : '1' } 钥匙。


0
投票

这是一个老问题......但是,提供的答案似乎都不为我所接受。执行此操作的最佳方法是在控制器中设置值new action。

<%= f.input :quantity, value: f.object.quantity || '1' %>

这将在新操作中将对象数量键分配给值1。编辑操作应该依赖于对象的持久值,如果验证失败并重新加载表单,则应该依赖于params值。其他答案将在编辑时强制数量为1,即使用户最初保存为nil(如果您允许为nil)。不好。我不会允许nil,但会在数量字段中包含0选项。

input_html

更干净。

© www.soinside.com 2019 - 2024. All rights reserved.