错误❌:

1.belongs_to :job, dependent: :destroy //尝试删除一条resumen后,job没有同步删除??

答:建立一对多的关系,如job和resume。应该在job中has_many :resumes, dependent: :delete_all 或者destroy.这样一旦job实例对象被删除,现关联的所有resume也被删除。

2 在rails console中对database进行操作。关注log

比如对Job的所有数据的is_hidden属性全部变更值为false。我开始没有save,所以没有存入数据库。

需要这么写:

a = Job.all

a.each do |job|

job.is_hidden = false

job.save  //最关键的是要save,否则会返回一系列数据,但不会存入数据库。

end

3. layout 中的参数传递。为了实现全部隐藏/全部发布 工作。在admin.html.erb中增加了这个功能。但如果在后台新增/更新 工作的话,仍然会调用这个layout.但是:

link_to("全部发布", publish_all_admin_job_path(@jobs), method: :patch) 中的@jobs,在new/create edit/update 方法中没有声明@jobs变量,所以会报告错误❌。如下:

No route matches {:action=>"publish_all", :controller=>"admin/jobs", :id=>nil} missing required keys: [:id]

修改方法有两种:

第一种。在controller中的new/create/edit/update的 method中加上@jobs = Job.all

第二种。直接把admin.html.erb中的@jobs改为 Job.all


delete_all 和 destroy的具体区别:看log


用delete_all:直接从数据库删除,不执行callback,所以效能高一点。
  User Load (0.1ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = ? ORDER BY "users"."id" ASC LIMIT ?  [["id", 1], ["LIMIT", 1]]
  Job Load (0.1ms)  SELECT  "jobs".* FROM "jobs" WHERE "jobs"."id" = ? LIMIT ?  [["id", 3], ["LIMIT", 1]]
   (0.0ms)  begin transaction
  SQL (0.2ms)  DELETE FROM "resumes" WHERE "resumes"."job_id" = ?  [["job_id", 3]]
  SQL (0.1ms)  DELETE FROM "jobs" WHERE "jobs"."id" = ?  [["id", 3]]
   (1.0ms)  commit transaction

用destroy: 和delete_all的区别,见标红
  User Load (0.2ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = ? ORDER BY "users"."id" ASC LIMIT ?  [["id", 1], ["LIMIT", 1]]
  Job Load (0.1ms)  SELECT  "jobs".* FROM "jobs" WHERE "jobs"."id" = ? LIMIT ?  [["id", 4], ["LIMIT", 1]]
   (0.1ms)  begin transaction
  Resume Load (0.1ms)  SELECT "resumes".* FROM "resumes" WHERE "resumes"."job_id" = ?  [["job_id", 4]]
  SQL (0.2ms)  DELETE FROM "resumes" WHERE "resumes"."id" = ?  [["id", 7]]
  SQL (0.3ms)  DELETE FROM "jobs" WHERE "jobs"."id" = ?  [["id", 4]]
   (0.9ms)  commit transaction

@jobs = Job.where("is_hidden = ?", true)  //检索属性是is_hidden,值是value的数据。

12月3日周日,关联:has_many(dependent::delete_all和destroy的区别) 注意看log; where等查询语句的用法。 layout传递参数❌的更多相关文章

  1. 12月17日周日 form_for的部分理解。belongs_to的部分理解

    1.lean guide:helper method query ,✅

  2. 12月16日广州.NET俱乐部下午4点爬白云山活动

    正如我们在<广州.NET微软技术俱乐部与其他技术群的区别>和<广州.NET微软技术俱乐部每周三五晚周日下午爬白云山活动>里面提到的, 我们会在每周三五晚和周日下午爬白云山.   ...

  3. 全国Uber优步司机奖励政策 (12月28日-1月3日)

    本周已经公开奖励整的城市有:北 京.成 都.重 庆.上 海.深 圳.长 沙.佛 山.广 州.苏 州.杭 州.南 京.宁 波.青 岛.天 津.西 安.武 汉.厦 门,可按CTRL+F,搜城市名快速查找. ...

  4. 武汉Uber优步司机奖励政策(12月21日-12.27日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  5. 佛山Uber优步司机奖励政策(12月28日到1月3日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  6. 南京Uber优步司机奖励政策(12月14日到12月20日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  7. 长沙Uber优步司机奖励政策(12月21日到12月27日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  8. 长沙Uber优步司机奖励政策(12月14日到12月20日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  9. 16.go语言基础学习(上)——2019年12月16日

    2019年12月13日10:35:20 1.介绍 2019年10月31日15:09:03 2.基本语法 2.1 定义变量 2019年10月31日16:12:34 1.函数外必须使用var定义变量 va ...

随机推荐

  1. windows系统bat方式启动tomcat出现java.lang.OutOfmemoryError:PermGen Space 错误

    1.问题情景: 在部署项目时,将两个应用部署到同一个tomcat下,通过startup.bat启动服务时,控制台出现出现java.lang.OutOfmemoryError:PermGen Space ...

  2. MySQL数据库读写分离、读负载均衡方案选择

    MySQL数据库读写分离.读负载均衡方案选择 一.MySQL Cluster外键所关联的记录在别的分片节点中性能很差对需要进行分片的表需要修改引擎Innodb为NDB因此MySQL Cluster不适 ...

  3. CPU负载过高异常排查实践与总结

    昨天下午突然收到运维邮件报警,显示数据平台服务器cpu利用率达到了98.94%,而且最近一段时间一直持续在70%以上,看起来像是硬件资源到瓶颈需要扩容了,但仔细思考就会发现咱们的业务系统并不是一个高并 ...

  4. Python3基础 str 通过拆分字符串与插入新的内容形成新的字符串

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  5. IntelliJ-IDEA和Git、GitHub、Gitlab的使用

    一.基本入门 1.IntelliJ-IDEA预装的版本控制介绍 我们来看IntelliJ-IDEA的版本控制设置区域 打开File>Settings>Version Control  可以 ...

  6. 使用CLR Profiler查看C#运行程序的内存占用情况

    http://blog.csdn.net/wy3552128/article/details/8158938 https://msdn.microsoft.com/en-us/library/ff65 ...

  7. 51NOD 1081 子段求和

    1081 子段求和   给出一个长度为N的数组,进行Q次查询,查询从第i个元素开始长度为l的子段所有元素之和.   例如,1 3 7 9 -1,查询第2个元素开始长度为3的子段和,1 {3 7 9} ...

  8. 使用InputStreamReader读入,使用OutputStreamWriter写出,将一首诗按行重写?

    https://www.processon.com/view/link/5b1a3880e4b00490ac8f5f40 改善后: (可将不管一行有几个字时的不规律的文本,按行倒写) package ...

  9. C#学习笔记(四):switch语句

    条件语句 switch语句快速生成枚举方法,复制枚举名在switch()里,双击TAB 快速生成方法,用纠错功能 随机数 using System; using System.Collections. ...

  10. .Net页面局部更新的思考

    最近在修改以前做的模块,添加一个新功能.整理了下才发现重用率很低,大部分的东西还是需要重新写.功能里用到了局部更新,所有整理一下一路来实现局部更新的解决方案及改进. 我接触的项目开发大多是以Asp.n ...