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

在Rails中,使用find with:select后,我的对象不保存

在Rails中,find_with 方法用于查询数据库中的对象,并返回一个对象的数组。select 方法用于选择需要查询的字段。当使用 find_with:select 后,返回的对象不会自动保存。

如果需要保存对象,可以使用 save 方法来手动保存对象。例如:

代码语言:ruby
复制
@users = User.find_with(:select => "name, age").select { |user| user.age > 18 }
@users.each do |user|
  user.save
end

在上面的代码中,我们使用 find_with:select 查询了所有年龄大于18岁的用户,并将结果保存在 @users 变量中。然后,我们使用 each 方法遍历数组,并使用 save 方法手动保存每个对象。

需要注意的是,在使用 find_with:select 方法时,必须指定要查询的字段。如果不指定字段,则默认查询所有字段,这可能会导致性能问题。

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

相关·内容

总结Web应用中常用各种Cache

Rails里面内置了fresh_when这个方法,一行代码就可以完成: class ArticlesController def show @article = Article.find...里面指定fresh_when以外,rails框架默认使用Rack::ETag middleware,它会自动给无etagresponse加上etag,但是和fresh_when相比,自动etag能够节省只是客户端时间...动态请求静态文件化 rails请求完成以后,将结果保存成静态文件,后续请求就会直接由nginx提供静态文件内容,用after_filter来实现一下: class CategoriesController...和caches_action不同,rails自带片段缓存是不支持条件,比如说我们想未登陆用户给他用片段缓存,而登陆用户不使用,写起来就很麻烦,我们可以改写一下helper就可以了: def..., "xxx", :expires_in => 1.day do 小技巧2:关联对象自动更新 常使用对象update_at时间戳来作为cache key,可以关联对象上加上touch选项,自动更新关联对象时间戳

4.7K40

Active Record基础

Active Record 是MVCM,负责处理数据和业务逻辑,Active Record实现了Active Record模式,是一种 对象关系映射 系统 Active Record 模式: Active...对象关系映射: ORM是一种技术手段,把应用对象和关系型数据库数据表连接起来,使用ORM,应用对象属性和对象之间关系可以通过一种简单额方法从数据库获取,无需直接编写SQL语句,也不过度依赖特定数据库种类...创建模型关联,Active Record 会查找这个字段。 主键: 默认情况下,使用证整数字段id作为表主键。...Product < ApplicationRecord end 如果应用需要使用其他命名约定,或者 Rails使用已有的数据库,则可以覆盖默认命名约定,如修改表名和主键名: class...迁移代码储存在特定文件,可以通过rails命令执行。

3.2K20

Rails 从入门到完全放弃

前言 这是一篇关于Rails开发经历文章,旨在将Rails遇到各种问题分享给还未接触Rails或是已经上路朋友。虽说做Rails开发时间不长,刚好一年多。...富文本编辑器上传图片 富文本编辑器Froala可以说是佼佼者,我们选用了Froala。但是遇到一个问题,Froala图片上传仅支持Amazon云,因此不得不改造Froala源码。...幸运是这个过程并不困难,将改造Froala用策略模式做成了一个Gem: wysiwyg-rails-qiniu,又一次造福社会。...class有冲突会出现bug. // 所以更正为 $(@).find('select.city-select') selects = $(@).find('.city-select...前端JS处理 随着JS增多,维护起来会越来越难,Rails项目中并没有做JS模块化,而是将JS用工厂模式汇集到了一起,新功能代码会放到工厂车间去,使用时候 new 一个工厂,调用需要功能即可

2.1K20

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

Rails一个重要设计理念就是约定优于配置,无需配置,按照缺省风格就可以完成基本功能,这样理念贯穿在Rails各个接口设计。...当年接触Rails时,最让感到震惊是它数据库查询方式,与传统开发风格截然不同,就这么简单一句: Article.find_by_title("foo") 要知道,那个时候用Java写程序,即便是想做一个最简单查询...而 Rails用一句轻描淡写find_by就解决了所有的问题,而且,这个find_by_title方法还不是实现Rails会替你自动实现。...Article.find_by_title_and_author("foo", "bar") 从功能角度说,这样查询功能上是完全一样,但显然Rails程序员和Java程序员工作量是天差地别的,...Java后期一些开源项目也开始向Rails学习。比如,使用Spring Data JPA项目,我们也可以写出类似Rails代码。

2.2K20

CentOS7安装维护Gitlab

官方安装方法 下面是官网复制过来官方安装方法,最简单安装,大天朝,只能望天兴叹,你可访问外国网站安装或者略过这里,看下面的。...,内容为 使用清华大学 TUNA 镜像源 打开网址将内容复制到gitlab-ce.repo文件,编辑路径vim /etc/yum.repos.d/gitlab-ce.repo [gitlab-ce...日志 重置管理员密码 gitlab管理员密码忘记,怎么重置密码,Gitlab 修改root用户密码 使用rails工具打开终端 sudo gitlab-rails console production...修改使用gitlab-ctl reconfigure命令重载配置文件。 开始备份 这里放你备份文件文件夹,和仓库源文件。...如果修改了,首先进入备份 gitlab 目录,这个目录是配置文件 gitlab_rails['backup_path'] ,默认为 /var/opt/gitlab/backups 。

5K30

springboot第27集:springboot-mvc,WxPay

在数据库,DISTINCT 关键字用于查询去重结果集。它用于从查询结果中去除重复行,只返回唯一行。...要使用 DISTINCT 关键字,可以将其放置 SELECT 关键字之前,指示数据库返回去重结果。 请注意,DISTINCT 关键字应用于所有指定列,即返回结果将根据指定所有列进行去重。..."com.wxapp.system.model.SysUser"> SELECT * FROM users WHERE phone = #{phone} 进入控制台 gitlab-rails...VO 对象属性通常是根据前端页面的需求来定义,可以包含与前端交互所需各种属性。 VO 对象一般是只读包含业务逻辑。...实际开发,为了解耦和模块化,常常会使用 DTO (Data Transfer Object) 对象不同层之间传输数据。

16220

为什么 Laravel 这么优秀?

这篇文章使用 Demo 是最新版 Laravel 10.x 以及 PHP 8.2。...我们还使用了 Laravel Resource 来格式化最终输出格式,这样做原因是很多情况下我们希望直接将数据库字段暴露出去,你甚至还能在 Laravel Resource 按不同角色显示不同字段...如 Java Spring 会在编译时为 Sprint Container 填充不同对象使用时就能向容器获取不同值。...container 设置不同值;如 CacheServiceProvider 会向容器中注册 Cache 对象,后续使用 Cache::get 时就使用是这里注册 Cache 对象注册阶段不应该向容器获取值...其实很不明白作为一名工程师为什么我们会瞧上某一门语言?

15310

Rails布局和视图渲染

index 动作末尾并没有指定要渲染视图,Rails会自动控制器视图文件夹寻找 action_name.html.erb 模板,然后渲染。...这里渲染就是 app/views/books/index.html.erb 使用render方法 render 方法行为有多种定制方式,可以渲染Rails模板默认视图、指定模板、文件、行间代码或者什么也渲染...如果没调用 html_safe 方法,HTML实体会转义 渲染JSON render json: @product 需要渲染对象上无需调用 to_json 方法,使用了 :json 选项,render...渲染XML render xml: @product 需要渲染对象上无需调用 to_xml 方法,使用了 :xml 选项,render 方法会自动调用 to_xml 。...布局渲染局部视图 _link_area.html.erb ,此时局部布局与局部视图保存在同一个文件夹

3.3K30

你真的了解mongoose吗?

: mongoose.connect(uri, options); 这里列举几个日常使用中比较重要选项,完整连接选项看这里 bufferCommands:这是 mongoose 中一个特殊选项..., [projection], [options], [callback]) 下面让我们依次看下 find()各个参数实际场景应用: conditionsModel.find({})Model.find... mongoose 中有两种指定方式,字符串指定和对象形式指定。 字符串指定时排除字段前加 - 号,只写字段名是包含。...ref 选项告诉 Mongoose 填充时候使用 User model。所有储存在 answerer _id 都必须是 User model document _id。...创建文档时,保存 refs 字段与保存普通属性一样,把 _id 值赋给它就好了。 const Answer = require("..

41.4K30

开发项目管理工具redmine 原

为什么使用Redmine? 基于上面的多种特性,项目管理工作,如任务分配、任务跟踪、项目权限管理等等带来很大便捷性,使得工作进度、质量更加可控。...在此使用rvm管理ruby,rvm 是一个命令行工具,可以提供一个便捷多版本 Ruby 环境管理和切换,如果你打算学习 Ruby / Rails, RVM 是必不可少工具之一。...即, 新版本Redmine启动默认监听localhost,如果要通过外网访问,需要在启动时指定其监听ip。如果指定,需要在本机配置代理(nginx/httpd)。...192.168.228.130 (注意,测试环境使用该方法测试前提是保证该虚拟主机为当前nginx服务器默认虚拟主机,否则需要配置独立域名),结果如下: ?.../bin/rails console production 进入ruby操作: # 获取要修改用户 2.3.0 :001 > admin_user = User.find_by_login('admin

10K40

Ubuntu19.1 GitLab 安装配置与卸载

allow https sudo ufw allow OpenSSH 3、安装依赖项 我们自己安装GitLab之前,安装一些安装过程持续使用软件非常重要。...补充:时间是超级无敌长,由你电脑配置决定。 sudo gitlab-ctl reconfigure 7、浏览器打开:http://127.0.0.1。...但是建议虚拟机这么做,建议先获取虚拟机 ip 地址,然后自己电脑上访问,比如我 ip 地址为 192.168.2.105 ,可以这样访问: http://192.168.2.105 获取...//好像是这个命令 apt install net-tools 首次使用时,GitLab会提示设置密码,默认配置是root用户密码,设置就可以正常使用了。 ? ?...4、删除 gitlab 文件 //删除所有包含gitlab文件及目录 find / -name gitlab|xargs rm -rf 删除gitlab-ctl uninstall时自动root下备份配置文件

2.5K10

selenium自动化测试报告_selenium自动化测试断言

2、driver.maximize_window() 一般为前置代码放到获取driver地址,进行浏览器窗口最大化 3、driver.refresh() 向浏览器重新发出请求,刷新页面,cookie...四、鼠标操作 (需要实例化鼠标对象) 1、我们有了鼠标为什么还要使用鼠标操作?? ​ 为了满足丰富html鼠标效果,必须使用对应方法。 2、鼠标时间对应方法在那个类? ​...一些特殊场景,一些按钮是页面最下角,需要使用滚动条拉到最底层。...防止恶意请求 3、验证码处理 ​ 这边讲的是cookie解决 4、使用cookie 登录 ​ 客户端登录账号,将登录状态想关 cookie 信息发给服务器保存,再发送去请求,携带cookie信息如果跟服务器保留一致...5、这里实现自动登录功能 ​ 1)、准备工作,客户端登录状态下,获取cookie字段 2、方法步骤: 1、整理cookie信息为字典数据,对应是name和value,保存一个变量 2、调用方法添加

2.4K20

七、Selenium与phantomJS----------动态页面模拟点击、网站模拟登录 每天一个小实例1(动态页面模拟点击,并爬取你想搜索职位信息) 每天一个小实例2(模拟网站登录)

4 # 调用环境变量指定PhantomJS浏览器创建浏览器对象 5 driver = webdriver.PhantomJS() 6 7 #访问网址,这里是登录boss直聘 8...h3 a span') 28 29 company_list =soup.select('.company-text a') 30 31 #将提取信息保存到work.txt 32...但是我们有时候需要让它内嵌代码运行,所以我们可以用一个叫 PhantomJS 工具代替真实浏览器。   ...这里用xpath,取a[@class="mnav"]文本 18 data_titles = driver.find_elements_by_xpath('//a[@class="mnav"]')...切换窗口方法如下: driver.switch_to.window("窗口名") #也可以使用 window_handles 方法来获取每个窗口操作对象

2.2K70

Go语言技巧 - 7.【GORM实战剖析】基本用法和原理解析

, 3).Scan(&result) 使用GORM核心思路梳理 一个对象 = 一行数据 示例一个User对象,完整地对应到具体users表一行数据,让整个框架更加清晰明了。...); 选择生效字段 = 核心结构体 + 字段数组 查询 和 更新 接口里,推荐使用方法是采用核心结构体User+一个fields数组,前者保存具体数据、也实现了结构体复用,后者则选择生效字段...所以,推荐使用方式里,区分了两种场景: 简单场景 - 核心结构体 + 字段数组 复杂场景 - 原生SQL 聚焦微服务场景 作为一个ORM工具,GORM要考虑兼容各种SQL语句,内部非常庞大。...避免引入非原生MySQL特性 GORM除了常规SQL功能,还提供了一些高级特性、模型关联、钩子等,非常炫酷。 但我推荐大家实际项目中使用这些特性。...GORM这些特性和存储过程有异曲同工之处:一个将业务逻辑放在了数据库,另一个则放到了ORM框架里,会导致后续迁移成本变高。 这也是推荐使用 gorm.Model重要原因。

3.1K30

水货CTO入职不到半年犯下低级错误,将公司拖入无底深渊

周一,Gab 将此 git commit 从网站上删除,但网络上已有图片保存了关键代码。 ? 这张图片显示是 2 月份软件变更情况,图片来自一家保存提交快照网站。...取而代之是,开发人员向包含 find_by_sql 方法 Rails 函数添加一个调用,该方法直接接受查询字符串未经清理输入。Rails 是一套广泛使用网站开发工具包。...“如果你知道 Web 应用中使用 SQL 数据库,那么你将听说过 SQL 注入,而且不难发现 find_by_sql 方法不安全警告。...Facebook 前产品工程师 Dmitry Borodaenko 一封电子邮件中提醒了这个问题。...这件事情也引起了开发者广泛关注,一位从事多年 Rails 开发网友说:“这是不好代码,让感到惊讶是这是由一位前 Facebook 工程师写(后来他成了 CTO)。

98020
领券