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. jQuery常用操作

    jQuery jQuery是一个轻量级的JS库,是一个被封装好的JS文件,提供了更为简便的元素操作方式,jQuery封装了DOM. 使用jQuery 引入jQuery文件 <scrtipt sr ...

  2. Yahoo数据仓库架构简介

    1. Yahoo数据仓库的整体架构 Yahoo数据仓库在基础架构上由hadoop集群和Oracle集群组成,hadoop集群是一个计算平台,完成所有ETL数据处理过程:Oracle集群只是一个查询环境 ...

  3. linux常用命令:ps 命令

    Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信 ...

  4. linux服务器---配置bind

    配置bind 1.确定已经安装bind软件,需要安装3 个bind.bind-chroot.bind-util [root@localhost wj]# yum install –y bind bin ...

  5. MongoDB ----基于分布式文件存储的数据库

    参考: http://www.cnblogs.com/huangxincheng/category/355399.html http://www.cnblogs.com/daizhj/category ...

  6. 【运维技术】Maven + Gogs + Nexus 实现版本管理 + 代码模块开发管理

    Gogs:能够实现fork + 代码提交 + 代码框架 Nexus:进行jar包的版本管理,私服下载jar包共享jar包 Maven:在客户端进行模块管理和批量操作 1. 本地maven仓库配置配置s ...

  7. P2P原理及UDP穿透简单说明

    转:http://http://andylin02.iteye.com/blog/444666 P2P原理及UDP穿透简单说明 本文章出自cnntec.com的AZ猫著,如需要转发,请注明来自cnnt ...

  8. nginx服务器的rewrite功能

    nginx编译的时候默认是把rewrite功能编辑进去的,但是因为rewrite需要使用正则表达式,因此需要安装pcre依赖包. yum install -y pcre pcre-install re ...

  9. 基于qml创建最简单的图像处理程序(2)-使用c++&qml进行图像处理

     <基于qml创建最简单的图像处理程序>系列课程及配套代码基于qml创建最简单的图像处理程序(1)-基于qml创建界面http://www.cnblogs.com/jsxyhelu/p/8 ...

  10. linux内核分析 第18章读书笔记

    十八章 调试 一.内核调试概述 1.需要面对的 一个确定的bug 一个藏匿bug的内核版本 相关的内核代码的知识和运气 2.艰难的调试工作 重现bug很困难:大部分bug通常都不是行为可靠而且定义明确 ...