程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Rails form_with 在提交表单时混淆第一个隐藏值,但在呈现 html 时不会大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Rails form_with 在提交表单时混淆第一个隐藏值,但在呈现 html 时不会?

开发过程中遇到Rails form_with 在提交表单时混淆第一个隐藏值,但在呈现 html 时不会的问题如何解决?下面主要结合日常开发的经验,给出你关于Rails form_with 在提交表单时混淆第一个隐藏值,但在呈现 html 时不会的解决方法建议,希望对你解决Rails form_with 在提交表单时混淆第一个隐藏值,但在呈现 html 时不会有所启发或帮助;

这些表单提交以及发送到服务器的数据表明 form_with 语句中缺少某些内容时产生的错误。

<%= form_with(url: create_conglomerate_dealers_path(shop_ID: @shop.ID)) do |form| %>
  <%= form.hIDden_fIEld :conglomerate_ID,value: conglomerate.ID %>
  <%= form.@R_301_5555@ t('activate') %>
<% end %>

HTML 渲染

<form action="/dealers/create_conglomerate?shop_ID=1" accept-charset="UTF-8" data-remote="true" method="post"><input type="hIDden" name="authenticity_token" value="0pSqVP5LgVbEWHsJpOT5EwQIfr91W@R_197_11534@m1Sc0fPa/giMIYUQJuZgYJpT5rYD/96pAzA3oC17bhbuegFL7Sa2dA==" />
  <input value="1" type="hIDden" name="conglomerate_ID" ID="conglomerate_ID" />
  <input type="@R_301_5555@" name="commit" value="activate" data-disable-with="activate" />
</form>

表单提交日志:

Processing by DealersController#create_conglomerate as Js
  Parameters: 
    {"authenticity_token"=>"H7DWxqNrmq3XN+dg5zUA/L5l14Rb40ebo8VSJmygev4skRu+edCvi43x0+dL82IryJHHaX2E2+Sk0HAF+s0CVw==","conglomerate_ID"=>"e8jeNf25TOzgqu3+/RRQ4Dk4ywJ3tEPbo6aKTwOWdMFI469NJwJ5yrps2XlR0jI3T8zb71HT36Sks6hslfsmaA==","commit"=>"activate","shop_ID"=>"1"}

以另一种形式投射:

<%= form_with(url: create_conglomerate_dealers_path) do |form| %>
  <%= form.hIDden_fIEld :shop_ID,value: @shop.ID %>
  <%= form.hIDden_fIEld :conglomerate_ID,value: conglomerate.ID %>
  <%= form.@R_301_5555@ t('activate') %>
<% end %>

HTML 渲染

<form action="/dealers/create_conglomerate" accept-charset="UTF-8" data-remote="true" method="post"><input type="hIDden" name="authenticity_token" value="wvQsTwdtJfGyz6aZtRE3xYnCCBEcZ2PM1TxvYePOMK+cQQML38DEx+zEOyYSChB/jvpBDkRF79mgEvL7/TJ40w==" />
  <input value="1" type="hIDden" name="shop_ID" ID="shop_ID" />
  <input value="1" type="hIDden" name="conglomerate_ID" ID="conglomerate_ID" />
  <input type="@R_301_5555@" name="commit" value="activate" data-disable-with="activate" />
</form>

表单提交日志

Started POST "/dealers/create_conglomerate" for ::1 at 2021-04-13 11:55:03 +0200
Processing by DealersController#create_conglomerate as Js
  Parameters:     
  {"authenticity_token"=>"coVGY1wcBhLFBPCuDs0EJ+rn17Qmsv2EA3uEtNNrwvNBpK0bhqczNJ/CxCmiC2bwnBPHWQDVYfsEbqaXRQa6Wg==","shop_ID"=>"e8jeNf25TOzgqu3+/RRQ4Dk4ywJ3tEPbo6aKTwOWdMFI469NJwJ5yrps2XlR0jI3T8zb71HT36Sks6hslfsmaA==","conglomerate_ID"=>"1","commit"=>"activate"}

因此第一个 hIDden_​​value 被转换成一个随机的十六进制值,甚至不是真实性_token。

这里发生了什么?改变元素的顺序:

<%= form_with(url: create_conglomerate_dealers_path) do |form| %>
  <%= form.@R_301_5555@ t('activate') %>
  <%= form.hIDden_fIEld :shop_ID,value: conglomerate.ID %>
<% end %>

提交的参数正确

Started POST "/dealers/create_conglomerate" for ::1 at 2021-04-13 11:58:30 +0200
Processing by DealersController#create_conglomerate as Js
  Parameters: {"authenticity_token"=>"SRNCFSdP2g2dIA/CQfSG7dPDtWrFsIT+LMs5r5ZN1gJ6Mqlt/fTvK8fmO0XtMuQ6pTelh+PXGIEr3huMACCuqw==","shop_ID"=>"1","commit"=>"activate"}

这不是错误吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

大佬总结

以上是大佬教程为你收集整理的Rails form_with 在提交表单时混淆第一个隐藏值,但在呈现 html 时不会全部内容,希望文章能够帮你解决Rails form_with 在提交表单时混淆第一个隐藏值,但在呈现 html 时不会所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:html