form_with 不生成任何 ID 的原因是什么?
What is the reasoning for having form_with not generate any ids?
form_with
助手不会为表单元素生成 id
,因此也不会生成 for
属性。这与旧的 form_tag
和 form_for
助手不同。
如果你想使用 form_with
而不是弃用的 form_tag
和 form_for
助手,但你想生成 id
s,你需要将它添加到你的配置:
config.action_view.form_with_generates_ids = true
id
生成在某些情况下很有用,因为某些前端事物可能需要它。最重要的是,在我看来,不生成 for
属性意味着使用 form_with
生成的表单具有较少的 a11y。
我目前在一个较旧的代码库中工作,其中需要表单元素 id
,我的下意识反应是启用上述配置设置,这样我就可以使用 form_with
而无需为每个元素手动设置 ID。
默认情况下 form_with
不生成 ids
的原因是什么?我担心我在这里遗漏了一些东西,因为我认为做出这个决定是有充分理由的。
从 Rails 5.2 开始,实际上 是 默认值:
config.action_view.form_with_generates_ids = true
您可以在更改它的 release notes, along with the commit 中看到它。根据该提交的描述:
When form_with
was introduced we disabled the automatic
generation of ids that was enabled in form_for
. This usually
is not an good idea since labels don't work when the input
doesn't have an id and it made harder to test with Capybara.
You can still disable the automatic generation of ids setting
config.action_view.form_with_generates_ids
to false.
你似乎没有遗漏任何东西:D
form_with
助手不会为表单元素生成 id
,因此也不会生成 for
属性。这与旧的 form_tag
和 form_for
助手不同。
如果你想使用 form_with
而不是弃用的 form_tag
和 form_for
助手,但你想生成 id
s,你需要将它添加到你的配置:
config.action_view.form_with_generates_ids = true
id
生成在某些情况下很有用,因为某些前端事物可能需要它。最重要的是,在我看来,不生成 for
属性意味着使用 form_with
生成的表单具有较少的 a11y。
我目前在一个较旧的代码库中工作,其中需要表单元素 id
,我的下意识反应是启用上述配置设置,这样我就可以使用 form_with
而无需为每个元素手动设置 ID。
默认情况下 form_with
不生成 ids
的原因是什么?我担心我在这里遗漏了一些东西,因为我认为做出这个决定是有充分理由的。
从 Rails 5.2 开始,实际上 是 默认值:
config.action_view.form_with_generates_ids = true
您可以在更改它的 release notes, along with the commit 中看到它。根据该提交的描述:
When
form_with
was introduced we disabled the automatic generation of ids that was enabled inform_for
. This usually is not an good idea since labels don't work when the input doesn't have an id and it made harder to test with Capybara. You can still disable the automatic generation of ids settingconfig.action_view.form_with_generates_ids
tofalse.
你似乎没有遗漏任何东西:D