Rails:如何将空的“必需”属性添加到radio_button_tag

iva*_*van 5 html validation ruby-on-rails

我正在尝试使用radio_button_tag来生成单选按钮标记,例如:

<input type="radio" ... required>
Run Code Online (Sandbox Code Playgroud)

为了添加表单验证(我正在使用Foundation并尝试使用Abide库)。我能得到的最接近的是:

radio_button_tag 'my_radio', ... , required: ''

# => <input type="radio" ... required="required">
Run Code Online (Sandbox Code Playgroud)

这对于Abide来说似乎已经足够好了,但是有没有办法让我从Rails助手中得到想要的东西?我试过required: true了,required: ''但是它的表现是一样的。

aar*_*ell 5

复制/粘贴没有字面的答案,因此我提供了一个答案。

<%= radio_button_tag(:model_id, model.id, false, required: 'required') %>


小智 4

正如您在这里看到的: https: //github.com/rails/rails/blob/4de8851289077239ecc91473bdba30f8cf6727bb/actionview/lib/action_view/helpers/tag_helper.rb#L149

Rails 只是通过“if value”查找是否存在值。空白字符串被视为一个值,因为它不是 nil,这会触发 Rails 包含“required='required'”属性。

Abide 真的需要将标签留空吗?看起来它可能只是检查“必需”属性是否存在,因此它可能不关心该属性是否有值。