首页
学习
活动
专区
工具
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,它会自动给无etag的response加上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 是MVC中的M,负责处理数据和业务逻辑,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.2K20

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

    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 。

    5.1K30

    springboot第27集:springboot-mvc,WxPay

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

    19320

    为什么 Laravel 这么优秀?

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

    26610

    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.4K30

    你真的了解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.6K30

    开发项目管理工具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

    10.1K40

    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.7K10

    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.5K20

    七、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.3K70

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

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

    99720

    GitLab安装与基础使用

    [TOC] 0x00 前言 在开源世界中,是没有终结的尽头! 描述:GitLab 是一个非常优秀的项目。这是一个开源项目,允许用户在自己的服务器上运行类似于 GitHub 的项目管理系统。...可以使用 GitLab 在公开发布之前开发私有项目。...#密码有格式限制,我只知道8位以上否则会保存失败 > u.password_confirmation = 'your_password' > u.save 方式2:通过初始化设置邮件进行找回管理员或者在本地...在同一台Centos7机器上卸载了旧版本的gitlab后,接着又重新安装新版本的gitlab-ce 在安装完后修改配置,初始化配置时出现以下错误: Running handlers: There was....修改配置文件添加最后两行egrep -v "^#|^ 连接上后找到对应的identities表修改对应的字段,其实就是把字段中的user_id修改掉,我这里做法就是把用户的user_id改成了负数,这样在

    8.5K20
    领券