【问题标题】:Adding a form input that is excluded from params hash添加从参数哈希中排除的表单输入
【发布时间】:2014-02-26 08:32:58
【问题描述】:

我有一个带有一些 check_box_tags 的表格。其中一些复选框不属于模型,需要从 params 哈希中删除。我知道我可以使用 exclude 方法,但问题是这些字段具有我无法提前知道的动态 id。

我的问题是:

有没有办法排除表单字段,使其不首先输入参数哈希?

非常感谢! 乌里

【问题讨论】:

  • 你必须把它放在表单之外,这样它们就不会在表单所属对象的上下文中提交。无论如何,将提交复选框、单选按钮、文本字段、区域等输入字段。或者,您可以向这些字段添加一个公共类并使用排除将它们删除。
  • 您使用的是 Rails 4 吗?因为使用strong parameters,您可以为您的参数哈希创建一个属性白名单。不在白名单上的所有内容都将从哈希中删除。

标签: ruby-on-rails forms params


【解决方案1】:

每当您向控制器提交表单并且输入字段具有名称时,这些 K:V 对将被添加到参数请求中,假设它们被您的强参数列入白名单(仅限 rails4)。您最好的选择是使用 JavaScript。像这样的东西会根据类、数据属性或您希望过滤的任何其他参数过滤这些字段:

$('.new_resource_form').onSubmit(function(e) {
    e.preventDefault();
    $('.fields_for_removal').remove();
    $(this).submit();
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-11
    • 2018-06-13
    • 2021-06-26
    • 2016-08-06
    • 2017-11-15
    • 1970-01-01
    相关资源
    最近更新 更多