美文网首页
玩具应用toy_app

玩具应用toy_app

作者: TW冯雯 | 来源:发表于2017-04-30 18:56 被阅读0次

    创建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 git@bitbucket.org:<username>/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解决问题”的过程中完成了,实践出真理,动动脑筋,灵活学习,任何困难都会迎刃而解的。

    相关文章

      网友评论

          本文标题:玩具应用toy_app

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