1.1. 2.2 项目步骤
入门项目需掌握:调试工具,大框架(Module 和 Class)与小框架(元编程),数据查询语句
怎样让问题在一开始就暴露出来:
- 第一步,建表包含主要字段,读 Api 存储主要数据
- 第二步,针对主要字段,做 Seed 假数据,查询算法难写的直接给个值就好(只要能展示就行)
- 第三步,用假数据展示
最耗时的事:
- seed 假资料(参考天马项目总结)
- 数据表命名、字段命名、添加标记类字段(参考云豹项目)
- 数据库查询展示(参考天马项目)
1.1.1. 2.2.1 画出:建表思维导图
1.1.2. 2.2.2 写出:展示的页面和字段
1)del/remark/role, start_at/expired_at 2)boolean is_locked 锁的(用于事务) is_valid 有效的(用于有效期) is_active 激活的(用于邮件激活账户) is_able 能用的(用于尝试) is_public, is_hidden, is_private 是否显示
1.1.3. 2.2.3 建表并关联
1)rails new 2)def full_title 3)rails g model xx 4)rails g controller admin::xx 5) admin::view 6) rails g controller xx 7) view
1.1.4. 2.2.4 编写假数据seed、tasks
[1,2,3]shuffle[0..1] 随机选两个, rand(), [1,2,3].sample(2) 随机选两个
- 存储多字段两种方法: 方法一:{"a":["b","c","d"]}.each{|key, value| Demo.find_or_create_by(a:key, b:value[0], c:value[1], d:value[2])} 方法二:["a","b","c"].product([1,2,3]){|ary| Demo.find_or_create_by(a:ary[0], b:ary[1])}
常用 faker Faker::Name
Faker::Markdown Faker::Lorem 段落 Faker::Avatar 头像 Faker::Internet 邮件密码ip Faker::Commerce 产品明细task 模板:lib/tasks/faker.rake,通过执行
rails dev:all
namespace :dev do # 跳过回调:<http://thelazylog.com/skip-activerecord-callbacks> task all: [ :create_cust_accounts, :create_shops ] task create_cust_accounts: :environment do puts "Generate faker users." 10.times do @batch = CustAccountBatch.create!(..) 50.times do if @batch.valid? @batch.cust_accounts.create!( email: "#{Faker::Name.last_name.capitalize}_#{Faker::Name.first_name.capitalize}_#{rand(10000..99999)}#{["@aol.com", "@gmail.com", "@yahoo.com", "@outlook.com"].shuffle[0]}", passwd: "#{Faker::Name.last_name.capitalize}_#{Faker::Name.first_name.capitalize}_#{rand(10000..99999)}@#") end end end end task create_courses: :environment do puts "Generate faker courses." Camp.all.each do |camp| rand(30..40).times do camp.courses.create!(name: Faker::Movie.quote, description: Faker::Lorem.paragraph, image: "center#{rand(1..24)}.jpg", is_locked: false) end end end end
1.1.5. 2.2.5 用假数据展示页面
1.1.6. 2.2.6 改用真数据:数据库查询
1)常用语法
1.1.7. 2.2.7 扩展数据库字段
1.1.8. 2.2.8 测试与重构
1.1.9. demo:天马项目流程
1)rails new
2)gem redis,bcrypt,kaminari,jwt,sidekiq,sidetiq,sinatra,faker,pry-rails
bootstrap 模板
title
controller:admin/account_activations,password_resets,sessions,static_pages,users
mailers:user_mailer
model:company,department,region,signin_log,user
seed
3)gem figaro,letter_avatar
controller:admin/account_activations,password_resets,sessions,static_pages,users
mailers
layout:sidebar