http://guides.rubyonrails.org/security.html#user-management

2.session笔记见13日的随笔。

http://www.cnblogs.com/chentianwei/p/8031913.html

3.Cross-site Request Forgery(CSRF)这之后没看。




再看find_by 和 where

我再做6-1购物车练习作业,设计一个功能:

点击加入购物车,可以增加cart_item的属性:quantity,但不会增加cart_item

可以使用find_by(product_id: product),但不能使用where(product_id: product)分析过程:

首先,对比sql语句。在控制台输入cart = Cart.last 最后得到不同的结果。


这是 用 cart.cart_items.find_by(product_id:4)

  CartItem Load (0.1ms)  SELECT  "cart_items".* FROM "cart_items" WHERE "cart_items"."cart_id" = ? AND "cart_items"."product_id" = ? LIMIT ?  [["cart_id", 5], ["product_id", 4], ["LIMIT", 1]]

=> #<CartItem id: 26, cart_id: 5, product_id: 4, quantity: 1, created_at: "2017-12-15 13:20:33", updated_at: "2017-12-15 13:20:33">


这是 用cart.cart_items.where(product_id:4)

   CartItem Load (0.2ms)  SELECT "cart_items".* FROM "cart_items" WHERE "cart_items"."cart_id" = ? AND "cart_items"."product_id" = ?  [["cart_id", 5], ["product_id", 4]]

=> #<ActiveRecord::AssociationRelation [#<CartItem id: 26, cart_id: 5, product_id: 4, quantity: 1, created_at: "2017-12-15 13:20:33", updated_at: "2017-12-15 13:20:33">]>


我发现 区别:见上面标黄的的代码。

然后,我查看api文档。where的定义是return a new relation.而find_by的定义是finds the first record matching the specified conditions.

我在这个过程中反复试验,当使用where的时候在下一行代码ci.quantity +=1 提示❌,(没有quantity这个method),而find_by可以继续执行ci.quantity +=1 ,这就证明了where返回的是新的一个关系,而find_by是返回的符合条件的第一条记录。

最后,我记录这次思考,✌️。

12月15日 session:Ruby on Rails Security Guide//从第3节开始没有学习//关于find_by 和where的区别用法思考。的更多相关文章

  1. 2016年12月15日 星期四 --出埃及记 Exodus 21:10

    2016年12月15日 星期四 --出埃及记 Exodus 21:10 If he marries another woman, he must not deprive the first one o ...

  2. 【C++】命令行Hangman #2015年12月15日 00:20:27

    增加了可以在构造Hangman对象时通过传入参数设定“最大猜测次数”的功能.少量修改.# 2015年12月15日 00:20:22 https://github.com/shalliestera/ha ...

  3. 北京Uber优步司机奖励政策(12月15日)

    用户组:人民优步及电动车(适用于12月15日) 滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:htt ...

  4. AHKManager.ahk AHK管理器 2019年12月15日

    AHKManager.ahk  AHK管理器  2019年12月15日 快捷键   {Alt} + {F1} ///////////////////////////////////////////// ...

  5. 12月15日下午Smarty模板函数

    1.{$var=...} 这是{assign}函数的简写版,你可以直接赋值给模版,也可以为数组元素赋值. <{$a = 10}><!--赋值语句--> <{$a}> ...

  6. 12月15日smarty模板基本语法

    smarty基本语法: 1.注释:<{* this is a comment *}>,注意左右分隔符的写法,要和自己定义的一致. <{* I am a Smarty comment, ...

  7. 12月15日BGV币行情分析

    今日,DeFi市场格外精彩.各主流概念币种走势出现了涨跌各半的两极态势.笔者认为,由于并没有总体可以利好DeFi市场的基本面因素,所以各DeFi概念币种的涨跌态势,还是与各自的基本面和技术面走势相关. ...

  8. MDI窗体容器--2016年12月15日

    MDI窗体容器 多文档界面(Multiple-Document Interface)简称MDI窗体.MDI窗体用于同时显示多个文档,每个文档显示在各自的窗口中.MDI窗体中通常有包含子菜单的窗口菜单, ...

  9. 12月15日DP作业

    [APIO2014]连珠线 考虑一组以 \(x\) 为中点的蓝边,有两种可能: \[son[x]->x->fa[x] \] \[son[x]->x->son[x] \] 其中若 ...

随机推荐

  1. 功能测试三剑客:测试框架、bug预防、探索性测试

    功能测试有一套框架来实现完整的覆盖测试的各个维度 测试框架: 参加本人之前的博客测试框架(包括总体的框架.web测试框架.PC客户端.手机客户端.服务器端.接口测试)六部分,罗列了各个领域的测试覆盖考 ...

  2. svn忽略目录,svn忽略app目录add toignore list,避免每次更新很多app的内容下来导出到本地很麻烦

    svn忽略目录,svn忽略app目录add toignore list,避免每次更新很多app的内容下来导出到本地很麻烦 ------------------------------ 本人微信公众帐号 ...

  3. 安装SQL2008时显示:RebootRequiredCheck 检查是否需要挂起计算机重新启动。

    解决方法: a.在开始->运行中输入regeditb.删除HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Serverc.删除HKEY_LO ...

  4. OpenCV-跟我一起学数字图像处理之拉普拉斯算子

    https://www.cnblogs.com/german-iris/p/4840647.html Laplace算子和Sobel算子一样,属于空间锐化滤波操作.起本质与前面的Spatial Fil ...

  5. MySQL Crash Course #10# Chapter 19. Inserting Data

    INDEX BAD EXAMPLE Improving Overall Performance Inserting Multiple Rows INSTEAD OF Inserting a Singl ...

  6. 关于mysql连接抛出10038错误问题

    今天用Navicat Premium连接windows server 2003 mysql的时候, 抛出10038问题, 这种问题之前在rhel也出现过一次, 就是防火墙不允许连接kill掉了这个请求 ...

  7. Java集合总结(List、Map、Set)

    集合的引入 当我们有种需求,需要存储多个元素的结构时,我们前面讲过数组,数组可以存储.但是数组也有它的弊端,使用的时候,必须先定义好长度,也就是数组的长度是固定,不能根据我们的需求自动变长或者变短. ...

  8. 高通计划停用MSM 以SDM为移动平台命名【转】

    本文转载自:http://www.eeworld.com.cn/xfdz/article_2017061566458.html 据外媒报道,高通公司计划停用骁龙移动平台型号前面的MSM字样,以SDM取 ...

  9. git如何列出最简短的commit(tag和head名都不显示)

    答:git log --oneline --no-decorate --oneline: 将commit显示成一行 --no-decorate: 将tag和head名隐藏掉

  10. Educational Codeforces Round 57 (Rated for Div. 2)

    我好菜啊. A - Find Divisible 好像没什么可说的. #include<cstdio> #include<cstring> #include<algori ...