(8)I多条件拼接查询、模型与表任意命名

在新的分支上进行开发

git checkout -b eighth/conditions
  • 添加路由
get 'conditions_one'
get 'conditions_two'
get 'conditions_three'

下面的例子中模型名和表名可以不对应,表名同时包含大小写,这些不符合rails默认约定都是可以的

  • 添加新的表和为原有表添加外键
rails g migration CreateCompanies
(8)I多条件拼接查询、模型与表任意命名_第1张图片

添加外键

rails g migration AddCompanyIdToProductInfoes
(8)I多条件拼接查询、模型与表任意命名_第2张图片
rake db:migrate
  • 填充数据


    (8)I多条件拼接查询、模型与表任意命名_第3张图片
(8)I多条件拼接查询、模型与表任意命名_第4张图片
  • 添加、修改模型文件


    (8)I多条件拼接查询、模型与表任意命名_第5张图片
(8)I多条件拼接查询、模型与表任意命名_第6张图片
  • 添加动作
    includes里面子关联表取出多个关联表形式的官方文档如下,这些接口的用法就去查官方文档,不要自己去猜想用法,比如includes(:product_second_tag,:product_info =>[:product_brand,:company])就是错误的。


    (8)I多条件拼接查询、模型与表任意命名_第7张图片
    image.png
(8)I多条件拼接查询、模型与表任意命名_第8张图片
  • 添加视图文件


    (8)I多条件拼接查询、模型与表任意命名_第9张图片

根据价格筛选后只有前5条记录价格小于50,每条记录都有标签--第二个筛选没有过滤任何记录,第三个日期筛选----把第二条记录筛选掉了。于是结果只有4条记录,说明正确。结果按照编码倒序排列:


(8)I多条件拼接查询、模型与表任意命名_第10张图片
(8)I多条件拼接查询、模型与表任意命名_第11张图片
(8)I多条件拼接查询、模型与表任意命名_第12张图片

如果带上sort参数且sort参数值为desc:
修修改第4条记录的价格为与第一条记录相同


(8)I多条件拼接查询、模型与表任意命名_第13张图片

视图页面修改为


(8)I多条件拼接查询、模型与表任意命名_第14张图片
(8)I多条件拼接查询、模型与表任意命名_第15张图片
(8)I多条件拼接查询、模型与表任意命名_第16张图片

如上就实现了先按照价格倒序排列,如果价格一样那么就按照编码倒序排列。

如果我们把第4条商品记录的SecondTagID的值去掉,注意结果显示为空,与其他未填重值的项为null不同。这也是我们前面讲的如果判断为null那么查询结果一个也没有的原因。我们查询判断添加应该是products.SecondTagID != ''


(8)I多条件拼接查询、模型与表任意命名_第17张图片

(8)I多条件拼接查询、模型与表任意命名_第18张图片

提交到远程仓库

git add .
git commit -m "I多条件拼 接查询、模型与表任意命名"
git push -u https://github.com/xiaohuacc/active_record.git eighth/conditions

把修改合并到主分支

git checkout master
git merge eighth/conditions

你可能感兴趣的:((8)I多条件拼接查询、模型与表任意命名)