首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我的rails update方法使用与我的create方法相同的强参数,给我一个参数错误?

在Rails中,update方法和create方法在使用强参数时是有一些区别的。强参数是一种安全机制,用于过滤用户提交的参数,防止恶意攻击和数据篡改。在Rails中,强参数通过params.require和params.permit方法来定义。

当使用相同的强参数定义时,update方法可能会出现参数错误的情况,这是因为update方法需要传入一个额外的参数来指定要更新的记录。在Rails中,update方法需要传入id参数来指定要更新的记录的ID,而create方法则不需要。

解决这个问题的方法是在update方法中添加id参数。你可以在调用update方法时,将id参数作为第一个参数传入,然后将其他参数作为第二个参数传入。例如:

代码语言:txt
复制
def update
  @record = Record.find(params[:id])
  if @record.update(record_params)
    # 更新成功的逻辑
  else
    # 更新失败的逻辑
  end
end

private
def record_params
  params.require(:record).permit(:attribute1, :attribute2)
end

在上面的代码中,我们首先通过params[:id]获取要更新的记录的ID,然后使用find方法找到该记录。接下来,我们调用update方法时,将id参数作为第一个参数传入,将其他参数作为第二个参数传入。

这样,update方法就能正确地使用强参数进行更新操作了。

推荐的腾讯云相关产品:腾讯云云服务器(https://cloud.tencent.com/product/cvm)和腾讯云数据库MySQL版(https://cloud.tencent.com/product/cdb_mysql)。

请注意,以上答案仅供参考,具体的解决方法可能因实际情况而异。在实际开发中,建议查阅官方文档或咨询相关领域的专业人士以获取准确的解决方案。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

@ModelAttribute注解使用1 注释方法2 注释一个方法参数

1 注释方法 被@ModelAttribute注释方法会在此controller每个方法执行前被执行,因此对于一个controller映射多个URL用法来说,要谨慎使用。...这个例子中model属性名称和model属性对象由model.addAttribute()实现 不过前提是要在方法中加入一个Model类型参数,当URL或者post中不包含此参数时,会报错 ?...其实不需要这个方法,完全可以把请求方法写成,这样缺少此参数也不会出错 ?...@ModelAttribute注释value属性,指定model属性名称 model属性对象就是方法返回值,无须要特定参数 1.4 和@RequestMapping同时注释一个方法 ?...属性名称由@ModelAttribute(value=””)指定,相当于在request中封装了key=attributeName,value=hi 2 注释一个方法参数 2.1 从model中获取

3.1K30

vue-cli

Rails一个重要指导思想,即约定大于配置, 它为 Web 应用大多数需求都提供了最好解决方法,并且默认使用这些约定,而不是在长长配置文件中设置每个细节。...笔者是使用 React 作为主力开发,Vue 也是非常喜欢一个开源项目,不说别的,在开发者’用户体验’方面 Vue 是见过最好之一,主要体现在 API 简洁性和易用性、文档还有项目构建工具(...相比而言 create-react-app 就是一个非常 Opinionated(坚持己见) 工具,约定....比如vue create时默认使用就是 babel+eslint preset. preset 可以简化项目脚手架创建。团队可以共享一个 preset 来创建脚手架。...例如比较,规范化 commander TJ 写命令行选项和参数解析器,支持子命令,选项校验和类型转换,帮组信息生成等等. API 简单优雅 minimist: 一个极简命令行参数解析器。

3.1K10

架构之美:教你如何分析一个接口?

但要学习不只是这些接口用法,要想从项目接口设计上学到更多,就需要关注它所引导风格。 为什么要看风格? 它希望你怎样使用它或二次开发。 还要维护项目的一致性,必须统一风格。...这一讲,我们就来一起来学习怎样看接口,选择项目是Ruby on Rails,因为它接口设计风格是带给我最多震撼,无论是编程接口优雅,还是开发过程接口顺畅。 看设计要先看模型。...REST刚出来时候,开发者普遍觉得这是一个想法,但怎么落地呢?没有几个人想得清楚。 Rails对REST使用方式做了一个约定。...当年接触Rails时,最让感到震惊是它数据库查询方式,与传统开发风格截然不同,就这么简单一句: Article.find_by_title("foo") 要知道,那个时候用Java写程序,即便是想做一个最简单查询...而 Rails用一句轻描淡写find_by就解决了所有的问题,而且,这个find_by_title方法还不是实现Rails会替你自动实现。

2.2K20

自建 Gitlab (邮箱配置、拆分 PostgreSQL、Redis) + 随想

' 接着使用以下命令让配置生效: gitlab-ctl reconfigure gitlab-ctl restart 最后就可以进入 gitlab 控制台测试发送邮件: gitlab-rails console...分离缓存与数据库 不知道 gitlab 为什么不进一步提供纯净版镜像,而且官方推荐 omnibus 安装方式,反正至少不喜欢把数据库和缓存都集成到一个镜像里面,预期是构建一个子镜像并移除 nginx...也许这辈子都不会用到使用 HTTP 去 clone 代码,但哥哥就是受不了这个提示,一想起来就头皮发麻,宛如被一万头草泥马来回碾压。 这个小问题让吃不香,睡不着,都胖了好几斤,必须要解决他。...不知道有多少人会像我一样常常被 “自己” 掣肘,在内心层面不算是一个很宅的人,不喜欢呆在家里,总是和很多人谈诗和远方,但,只局限于谈。...一方面大块时间浪费常常给我带来负罪感,因此很少能玩得尽兴;另一方面,对于每月结余都是负数资产状况,偶尔还得厚着脸皮问家里要,不知道还有什么资格去追求些什么?

2.2K60

Oracle总结【PLSQL学习】

这里写图片描述 为什么要用PLSQL 因为SQL是第四代命令式语言,无法显示处理过程化业务,所以得用一个过程化程序设计语言来弥补SQL不足之处, SQL和PLSQL不是替代关系,是弥补关系 PLSQL...dbms_output.put_line('hello 你好'); end; / 注意: dbms_output是oracle中一个输出对象 put_line是上述对象一个方法,用于输出一个字符串自动换行...不难发现是,函数是必定要有一个返回值,当我们在调用时候,接受返回值就直接获取就行了。 也就是说 当返回值只有一个参数时候,那么就使用存储函数!...当返回值没有参数或者多于一个参数时候,那么就使用过程!...SQL与过程函数使用场景 【适合使用】过程函数: 》需要长期保存在数据库中 》需要被多个用户重复调用 》业务逻辑相同,只是参数不一样 》批操作大量数据,例如:批量插入很多数据 【适合使用】SQL: 》凡是上述反面

2.3K70

你不知道 React 最佳实践

图片 在最佳实践之前,建议在开发 React 应用程序时使用测试驱动开发(TDD)[2]。 测试驱动开发意味着首先编写一个测试,然后根据测试开发你代码,这样更容易识别出错误。...= 'my-app/widgets/CREATE'; const UPDATE = 'my-app/widgets/UPDATE'; const REMOVE = 'my-app/widgets/REMOVE...当团队成熟时候,会开始使用rails」 风格。 「Rails优势在于可以轻松地理解项目。 Dan Abramov 在 推特上 发布了一个解决方案 ? 图片 ❝移动文件,直到感觉合适为止。...如果下次 props 变化,则组件状态将不会更新,并且保持与前一个相同。 您可以使用响应生命周期方法 componentDidUpdate 来修复问题。...prevState.ischecked} }) 上面的函数将接收前一个状态作为它一个参数,并在更新应用为它第二个参数使用 props。

3.2K10

Rails 部署总结

[Cover] 学 Ruby 和 Rails 有一段时间了,后面准备也准备把站点换了。不过开始开发之前,先把 Rails 部署坑先踩了。...之所以部署先行是因为之前 Django 部署把坑惨了,导致之前写 Django 代码还是 Github 静静地躺着。 忽悠妹子给我在腾讯云买了服务器后,马不停蹄就开始了填坑之旅。...下面仅仅列出使用命令: 安装 Ruby 版本控制器 RVM: $ gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3...创建数据库: $ RAILS_ENV=production rails db:create $ rails db:create 配置好数据库后就是拉起 Rails 了,但是此处有坑。...$ rails s 在 Rails 5 中第一条拉起命令会出错,错误提示如: initialize': Cannot assign requested address - bind(2) for "IP

6.9K50

【小家java】为什么说Java中泛型是“假”?(通过反射绕过Java泛型)

说在前面 泛型是JDK5带给我新特性,虽然它处于历史原因,有不完善地方。但是更多还是给与我们带来方便。...下面先简要先说说它优点: 泛型就是参数化类型: 适用于多种数据类型执行相同代码 泛型中类型在使用时指定 泛型归根到底就是“模版” 优点:使用泛型时,在实际使用之前类型就已经确定了,不需要强制类型转换...可以有: 泛型类型 泛型类 泛型接口 泛型方法 泛型继承 extends/super 泛型通配符 为什么说Java泛型是"假"呢?...其实Java为了向下兼容,提出来泛型只是一个语法糖,并不是像c++那样是真的泛型。...但是get出来时候会报错,因为转失败 最后 虽然java中泛型是“假”,会有泛型擦除操作,但是不可否则,泛型引入对java语言影响还是挺大,让它上升了一大步,所以本文借两个例子,希望能够加强读者对

82920

如何使用Passenger和Nginx部署Rails

对于较小站点,只需采用1GB内存即可。没有服务器同学可以在这里购买,不过个人更推荐您使用免费腾讯云开发者实验室进行试验,学会安装后在购买服务器。...此步骤可能需要更长时间: make 现在,使用install参数运行相同命令。它会尝试将已编译二进制文件复制到/usr/local/bin文件夹中。此步骤需要root访问才能写入此目录。...第六步 - 部署 在本教程中,我们将直接在CVM上创建一个Rails应用程序。我们需要一个rails gem来创建新应用程序。...要测试我们设置,我们希望看到Rails Welcome aboard页面。但是,仅当应用程序在开发环境中启动时,此方法才有效。...如果你没有域名,建议您先去这里注册一个域名,如果你只是使用此配置进行测试或个人使用,则可以使用自签名证书,不需要购买域名。自签名证书提供了相同类型加密,但没有域名验证公告。

4.9K20

iOS AFNetworking 源码阅读三

)) { return nil; } } return [[NSXMLParser alloc] initWithData:data]; } 方法调用了一个另外方法之后...} ●简单来说,这个方法就是来判断返回数据与咱们使用解析器是否匹配,需要解析状态码是否匹配。...json解析错误,赋值给我们需要返回给用户error上。...最后我们来解释解释为什么回调Queue要设置并发数为1: 认为AF这么做有以下两点原因: 1.众所周知,AF2.x所有的回调是在一条线程,这条线程是AF常驻线程,而这一条线程正是AF调度request...2.因为跟代理相关一些操作AF都使用了NSLock。所以就算Queue并发数设置为n,因为多线程回调,锁等待,导致所提升程序速度也并不明显。

85040

使用iPhone相机和OpenCV来完成3D重建(第三部分)

块匹配关键是在可视区域重叠两幅图像之间寻找匹配点。通俗地说,这意味着算法将在捕获同一对象(即相同事物)两张图片中寻找相同像素。...这就是为什么在将视差图转换为点云之前,将其可视化非常方便原因。 经过多次尝试和错误视差图最终是这样自己视差图 如你所见,这个视差图在衬衫区域有很多死点和斑点。...光滑差距地图 优化视差图最佳方法是在算法基础上构建一个GUI,并实时优化视差图,以获得更平滑图像。在未来将上传一个GUI,以便实时微调,同时我们将使用这个视差图。...opencv文档中有一个转换矩阵例子。 大多数例子将使用OpenCV文档中转换矩阵。在情况下,事情并不是那么顺利。环顾四周,发现了一个更通用矩阵,矩阵就是以这个为基础。...\n") create_output(output_points, output_colors, output_file) 实际生成点云算法与我在OpenCV示例中找到算法完全相同

1.2K62

总结Web应用中常用各种Cache

:etag => [@article.cache_key, current_user_favorited] 另外提一个坑,如果nginx开启了gzip,对rails执行结果进行压缩,会将rails输出...etag header干掉,nginx开发人员说根据rfc规范,对proxy_pass方式处理必须这样(因为内容改变了),但是个人认为没这个必要,于是用了粗暴方法,直接将src/http/modules...,文章内容如果有改变,缓存自动失效,默认activerecordcache_key方法也是用updated_at,你也可以加入更多参数,比如article上有评论数counter cache,更新评论数时候不会更新文章时间..., "xxx", :expires_in => 1.day do 小技巧2:关联对象自动更新 常使用对象update_at时间戳来作为cache key,可以在关联对象上加上touch选项,自动更新关联对象时间戳.../abstract/query_cache.rb ),在同一个请求周期内,如果没有update/delete/insert操作,会对相同sql查询进行缓存,如果文章类别都是相同的话,真正去查询数据库只会有

4.7K40

MySQL中2个小问题

MySQL中2个小问题 今天晚上,在一个单机多实例环境上,发生了一个错误,看着比较奇怪,之前也遇到过,但是没有留意,今天花了一点时间,搞了一下,问题得到了解决,跟大家分享一下。...会给我们进行报错。...遇到问题就是在单机多实例环境下面,报错信息缺失,如上所示,只有一个error code,以前碰到这个问题,都是从MySQL官方文档中去查这个error code对应错误是什么,(补充一下官网...: 8 129 0111 这个问题,使用字符串reverse函数和运算符中"-"符号组合解决,具体方法如下,大家可以看看有没有更好方法: 1、使用reverse函数翻转字符串,将数字反向放在前面...从报错信息来看,mysql在处理隐式转换时候,是将表中varchar数据转换成整数来跟where条件进行匹配,但是这样似乎又解释不通为什么一个update name=9语法是正确,因为name

1.3K10
领券