Recaptcha gem 需要在 Rails7 上提交失败
Recaptcha gem needs a failed subimission on Rails7
带有 recaptcha 的工作表单从 rails6 移动到 rails7 总是在第一次提交时出现 recaptcha 验证错误。在第二次提交时有效。
= form_with url: mail_submit_path do |form|
= render partial: "err_details", locals: {field: :email}
.field
%label.label email
.control.has-icons-left
= form.text_field :email, value: @email, required: true, class: "input"
%span.icon.is-left
%i.fas.fa-envelope{:'aria-hidden' => "true"}
= render partial: "err_details", locals: {field: :captcha}
.field
.recaptcha
= recaptcha_tags
.field
.control
= form.submit "Submit", class: "button is-link"
第一次提交时缺少一些数据:来自 rails 日志:
I, [2022-01-18T18:42:23.795409 #1451245] INFO -- : [3c877c6c-5a2a-46e5-8ff6-5338c36d1078] Parameters: {"authenticity_token"=>"[FILTERED]", "email"=>"someone@gmail.com", "g-recaptcha-response"=>" ", "commit"=>"Submit"}
我认为这是一个涡轮问题,但不确定。
我在 Rails 6.1.4 中遇到了同样的问题。出于某种原因,更改
<%= recaptcha_tags %>
到
<%= recaptcha_tags(noscript: false) %>
对我有用。
我还想补充一点,我在为使用 recpatcha 标签的表单禁用 Turbo 方面取得了更多成功。
<%= form_with(model: @resource, local: true, data: { turbo: "false"}) do |f| %>
带有 recaptcha 的工作表单从 rails6 移动到 rails7 总是在第一次提交时出现 recaptcha 验证错误。在第二次提交时有效。
= form_with url: mail_submit_path do |form|
= render partial: "err_details", locals: {field: :email}
.field
%label.label email
.control.has-icons-left
= form.text_field :email, value: @email, required: true, class: "input"
%span.icon.is-left
%i.fas.fa-envelope{:'aria-hidden' => "true"}
= render partial: "err_details", locals: {field: :captcha}
.field
.recaptcha
= recaptcha_tags
.field
.control
= form.submit "Submit", class: "button is-link"
第一次提交时缺少一些数据:来自 rails 日志:
I, [2022-01-18T18:42:23.795409 #1451245] INFO -- : [3c877c6c-5a2a-46e5-8ff6-5338c36d1078] Parameters: {"authenticity_token"=>"[FILTERED]", "email"=>"someone@gmail.com", "g-recaptcha-response"=>" ", "commit"=>"Submit"}
我认为这是一个涡轮问题,但不确定。
我在 Rails 6.1.4 中遇到了同样的问题。出于某种原因,更改
<%= recaptcha_tags %>
到
<%= recaptcha_tags(noscript: false) %>
对我有用。
我还想补充一点,我在为使用 recpatcha 标签的表单禁用 Turbo 方面取得了更多成功。
<%= form_with(model: @resource, local: true, data: { turbo: "false"}) do |f| %>