美文网首页ruby on rails
(4)商品编码查询功能

(4)商品编码查询功能

作者: suhuanzhen | 来源:发表于2016-11-28 00:53 被阅读0次

切换到新的分支进行开发

git checkout -b fourth/barcode

构造数据

rails g migration CreateProductBrands
rails g migration CreateProductHistories
rails g migration CreateTags

执行迁移

rake db:migrate

填充数据

products添加p8记录和填充SecondTagID


image.png image.png

product_infoes添加info8记录和填充ProductBrandID字段


image.png image.png

product_second_tags填充TagID字段


image.png

添加模型文件,因为创建的表名符合默认约定,不写self.table_name也行

添加路由

image.png

添加动作

无论是在控制器还是视图中,查询语句里面含有#{}的解析符就可能导致sql注入
#barcode_scanner_one是错误示例,会导致sql注入
def barcode_scanner_one
end

这个示例虽然显示没有问题,但是存在漏洞,#{}的解析符出现在查询条件里面会导致sql注入。

我们应该用占位符?代替#{}的解析符,如下是正确案例
def barcode_scanner_two
end
image.png image.png

因为我们需要通过{:product_second_tag=>[:tag]}访问到关联的数据,于是我们添加如下模型关联



同理我们还要添加一个模型关联


不过上面那样添加关联后面会导致如下的错误,这个是for nil class的另外一种情况。前面出现for nil class是因为没有关联的记录,而下面这种则是有关联的记录但是模型关联里面没有写关联或者写了关联关系但是没有写出foreign_key所以无法找到关联的数据


image.png

修改模型关联为如下:


场景实现

根据params传入商品编码(也可以是原生app二维码扫码,这里我们使用url携带参数模拟),一个编码对应一个商品就直接显示详细信息;一个编码对应多个商品就显示列表页,点击列表项来到该列表项对应的详细信息。

image.png image.png

一个编码对应多个商品,结果是列表页,点击列表项来到详细信息页面

一个编码对应一个商品则直接显示详细信息页,可以看到路由url与点击列表项来到的详细信息页的url中携带ProductID不同
如下品牌和预售数量为空是因为info22关联的product_info记录不存在,而其他关联数据存在


查看控制台信息,可以看到sql语句没有出现n+1问题,说明完成任务合格


image.png

排序生效,如下我们反过来排序结果也反过来了


image.png image.png

排序的写法还可以这么写,结果是一样生效的


然后提交修改:

git add .
git commit -m "商品编码查询"
git push -u https://github.com/xiaohuacc/active_record.git fourth/barcode
Counting objects: 26, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (23/23), done.
Writing objects: 100% (26/26), 5.67 KiB | 0 bytes/s, done.
Total 26 (delta 9), reused 0 (delta 0)
remote: Resolving deltas: 100% (9/9), completed with 8 local objects.
To https://github.com/xiaohuacc/active_record.git
 * [new branch]      fourth/barcode -> fourth/barcode
Branch fourth/barcode set up to track remote branch fourth/barcode from https://github.com/xiaohuacc/active_record.git.

合并到主分支

git checkout master
git merge fourth/barcode

相关文章

  • (4)商品编码查询功能

    切换到新的分支进行开发 构造数据 执行迁移 填充数据 products添加p8记录和填充SecondTagID p...

  • 2018-05-26

    2.9商品信息查询修改界面功能设计 2.9.1 GIF图片 2.9.2 主要功能 2.9.2.1 查询商品信息2....

  • 同一个输入框 多个关键字查询

    一个搜索框中有商品名称、商品编码查询 AND (group_name like CONCAT('%', #{gr...

  • 报关、运输、订舱常用查询网址

    盐田码头集装箱公共查询 蛇口码头集装箱公共查询 大铲湾码头集装箱公共查询 海关知识产权查询 海关商品编码查询 海关...

  • 商品管理案例——案例准备

    一、案例的概述 1、案例实现的功能 分类管理  查询分类  添加分类  删除分类  修改分类 商品管理  查询商品...

  • 2.9 商品信息查询修改界面功能设计

    1.商品信息查询修改界面 2.主要功能及后台数据库表结构描述 主要功能 通过输入商品名称点击查询按钮实现查询数据库...

  • 2018-05-25

    2.9 商品信息查询修改界面功能设计 修改流程 1.画面主要功能 修改商品的各种信息,但是商品条码不能修改。 2....

  • 2018-12-04

    2.9商品信息查询修改界面功能与设计 (一)界面功能介绍 1、实现数据库数据查询、修改、删除; 2、该功能后台数据...

  • 商品信息查询修改界面功能设计

    2.9 商品信息查询修改界面功能设计 1.效果图 2.描述画面主要功能,并列出后台数据库表结构 对商品信息进行查询...

  • 判断EditText输入的内容是数字还是文字

    近期在做一个收银端项目,在收银列表输入框里面可以通过输入商品编码,商品名称,商品缩写来查询到相应的商品。通过查阅资...

网友评论

    本文标题:(4)商品编码查询功能

    本文链接:https://www.haomeiwen.com/subject/jzvnpttx.html