在Rails上提交表单红宝石时如何更新表单字段的一部分

大麦

我正在使用ruby on rails form helper。在创建的表单中,我有几个输入字段:web_update(boolean),value1(int),value2(int),value3(int)

  <div style="margin-left:30px">
   Load Value From Web Site  
   <%= f.check_box :load_web %>  
  </div>

   <div class="control-group">
    <%= f.label :value1, class: "control-label" %>
    <div class="controls">
      <%= f.text_field :value1, class: "input-large" %>
    </div>
  </div>

当我将load_web设置为true时,这意味着value1-value3字段和load_web列将更新为数据库。

但是,当我将load_web设置为false时,我只希望更新数据库中的load_web值,此表也将更新value1-value3字段,并将它们更新为0,而我希望它保持其原始值。

以下是将load_web设置为false并更新表单时得到的参数:

Parameters:

{"utf8"=>"✓",
 "_method"=>"put",
 "authenticity_token"=>"YwbqeRIjadhMlPIA9fjc0Nm66p1bcu786HhaukofykU=",
 "project_id"=>"34",
 "load_web"=>"0",
 "value1"=>0.0,
 "value2"=>0.0,
 "value3"=>0.0},
 "commit"=>"Submit",
 "id"=>"9"}

如何根据当前load_web值从更新中删除value1-value3?还是有其他解决方法?

奥雅纳·拉希特(Arup Rakshit)

这是一种方法,您可以执行。您可以有2个强参数声明。

private

def load_web_set_params
  params.permit(:load_web, :value1, :value2, :value3,..)
end

def load_web_unset_params
  params.permit(:load_web,...) # don't put value1 to value3 here
end

现在,在控制器内部,在更新之前测试的值,load_web并使用相应的方法进行更新。

case load_web_unset_params[:load_web]
when '0' then Model.update load_web_unset_params
when '1' then Model.update load_web_set_params
end

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

表单的一部分未提交

在提交表单时,删除输入值一词的一部分

红宝石,如何删除字符串的第一部分?

单击时隐藏/显示表单的一部分。如何调试?

如何在不提交的情况下使用jQuery Validator验证表单的第一部分?

ASP.NET表单提交模型的一部分

Laravel表单类将值提交为数组的一部分

提交动态生成的内容作为表单的一部分

仅重置表单的一部分

Symfony使表单的一部分在提交时成为可选

选中复选框时删除表单的一部分

单击按钮如何在JSF / PrimeFaces中复制表单的一部分

如何手动呈现Django表单的一部分

如何使用 JavaScript 隐藏表单 div 的一部分?

如何仅更新字段的一部分并更新存储库?

具有部分的动态表单仅将字段添加到最后一部分

在Flutter上更新UI的一部分

需要提交选择 ID 作为表单的一部分,我该怎么做?

允许用户仅输入Django模型创建表单的一部分(在用户提交表单后添加到表单)

如何搜索字段的一部分?

检查HTML表单表明按钮不是表单的一部分

如何在postgres中更新时间戳字段的一部分?

如何反应更新DOM的一部分?

如何更新模型是集合的一部分

如何更新 netCDF 文件的一部分?

将事件侦听器作为部分页面的一部分加载时,如何将其添加到表单中?

如何通过正则表达式红宝石删除字符串的一部分(而不仅仅是替换它)

使用requestAnimationFrame时,如何使动画的一部分更新更快

发送到邮件功能时,Ajax表单省略了数组的第一部分