创建toy-app应用:
cd ~/workspace
rails new toy_app
cd toy_app/
参照使用Heroku部署hello_app,修改Gemfile文件,然后执行:
bundle install --without production #安装gem
git init #把toy_app纳入git中
git add -A
git commit -m "Initialize repository"
git remote add origin [email protected]:/toy_app.git
git push -u origin --all
参照创建第一个应用hello_app修改toy_app应用中的app/controllers/application_controller.rb文件,定义动作。
提交改动,再推送到 Heroku 中:
git commit -am "Add hello"
heroku create
git push heroku master
Users资源:创建用户
接下来,利用脚手架scaffold,生成Users资源:
rails generate scaffold User name:string email:string
rails db:migrate #迁移数据库
执行rails s
命令后,在浏览器打开 http://localhost:3000/users 就可以看到,是一个可以创建用户的界面了(好可惜,这里没有截图),并且可以创建、编辑、删除用户。
修改toy_app/config/routes.rb文件,改变跟路由:
Rails.application.routes.draw do
resources :users
root 'users#index'
end
Microposts资源:创建微博
同样利用scaffold生成Microposts资源:
rails generate scaffold Micropost content:text user_id:integer
rails db:migrate
执行rails s
命令后,在浏览器打开 http://localhost:3000/microposts/new 就可以看到,是一个可以创建微博的界面了。试着输入一些内容吧。
在toy_app/app/models/micropost.rb中可以限制微博的长度:
class Micropost < ApplicationRecord
validates :content, length: { maximum: 140 }
end
修改toy_app/app/models/user.rb文件,设置一个用户可拥有多篇微博:
class User < ApplicationRecord
has_many :microposts
end
修改toy_app/app/models/micropost.rb,设置一篇微博属于一个用户:
class Micropost < ApplicationRecord
belongs_to :user
validates :content, length: { maximum: 140 }
end
修改toy_app/app/models/micropost.rb文件,添加验证微博内容存在性的代码:
class Micropost < ApplicationRecord
belongs_to :user
validates :content, length: { maximum: 140 },
presence: true
end
修改toy_app/app/models/user.rb,添加验证用户名和邮件存在性的代码:
class User < ApplicationRecord
has_many :microposts
validates :name, presence: true
validates :email, presence: true
end
部署:
git add -A
git commit -m "finished"
git push
heroku create
git push heroku
heroku run rails db:migrate #迁移生产数据库
好了,今天的学习终于是在“碰到问题to解决问题”的过程中完成了,实践出真理,动动脑筋,灵活学习,任何困难都会迎刃而解的。