Dav*_*Gay 3 ruby forms ruby-on-rails actionview
该form_with帮助器不会id为表单元素生成 s,因此也不会生成for属性。这与老form_tag和form_for帮手不同。
如果您想使用form_with而不是已弃用的form_tag和form_for帮助程序,但您希望id生成 s,则需要将其添加到您的配置中:
config.action_view.form_with_generates_ids = true
Run Code Online (Sandbox Code Playgroud)
id生成在某些情况下很有用,因为某些前端事物可能需要它。最重要的是,在我看来,不生成for属性意味着生成的表单form_with具有较少的 a11y。
我目前正在使用一个较旧的代码库,其中id需要表单元素,我的下意识反应是启用上述配置设置,这样我就可以使用而form_with无需为每个元素手动设置 ID。
默认form_with不生成的原因是什么?ids我担心我在这里遗漏了一些东西,因为我认为这个决定是有充分理由的。
从 Rails 5.2 开始,这实际上是默认设置:
config.action_view.form_with_generates_ids = true
Run Code Online (Sandbox Code Playgroud)
您可以在发行说明中看到它,以及更改它的提交。从该提交的描述来看:
当
form_with引入时,我们禁用了在form_for. 这通常不是一个好主意,因为当输入没有 id 时标签不起作用,并且使用 Capybara 进行测试变得更加困难。您仍然可以禁用自动生成 idsconfig.action_view.form_with_generates_ids设置false.
看来你没有错过任何东西:D
| 归档时间: |
|
| 查看次数: |
734 次 |
| 最近记录: |