• ROR练习:玩具应用

  • Pic Name: Jetty Tag: RubyOnRails

    创建新应用

    rails new toy  #创建完后记得进入该项目目录,cd toy/

    如果在项目中使用jquery,可在Gemfile文件中加入 gem 'jquery-rails' ,bundle之后在assets目录的javascript中的applications中加入 //=require jquery 。

     

    纳入Git版本控制系统

    git init
    git add -A
    git commit -m "Init"

    在Github中创建新的仓库,根据提供的代码进行提交。

     

    玩具应用准备

    在 app/controllers/application_controller.rb 中添加:

    def hello render html: "hello,world!"  end

    在 config/routes.rb 中添加:

    root 'application#hello'

    然后提交活动,git commit -am"Add hello"  

    如果想要在开发的过程中实时测试线上部署状态,可以在heroku上注册账号,然后:

    heroku create
    git push heroku master
    heroku open  #然后便可以浏览

     

    玩具应用开发 

    玩具应用的大致设计为TWITTER类微博,拥有用户和简短的文章。

    Users资源创建

    rails g scaffold User name:string email:string  #id字段不必指定,rails会自动创建并设为主键
    rails db:migrate  #每次建表都必须运行命令迁移数据库

    Users资源尝试 

    rails s

    在浏览器中输入 localhost:3000/users,可以观察到相应的界面。请自行体验增、删、改。 

    打开 config/routes.rb ,修改根路由:

    root 'users#index'

     在浏览器中输入 localhost:3000,可以发现显示的视图为之前 localhost:3000/users 的视图。

    Users控制器解释

    打开 app/controllers/users_controller.rb 

    观察脚手架创建的一系列代码,七个动作分别对应http的 get、post、patch、delete 。每一个动作(除create、update、delete)都有对应的视图文件,存在于 app/view/user...中。

    Microposts资源创建

    rails g scaffold Micropost content:text user_id:integer
    rails db:migrate 

    重启本地服务器

    ctrl+c  #关闭
    rails s 

    浏览器输入地址 localhost:3000/microposts 查看视图

    Microposts资源添加限制

    在 app/models/micropost.rb 中:

    validates :content, length: { maximum: 140 }

     然后在浏览器中刷新输入超过140字符的段落,会出现错误信息。

    User可拥有多个Micropost(一对多)

    在 app/models/user.rb 添加:

    has_many :microposts

     在 app/models/micropost.rb 添加:

    belongs_to :user

    保存后即完成了两个模型间的关系设置。

    数据库数据写入(或在浏览器操作)

    rails c  #打开操作界面
    first_user = User.first
    first_user.microposts
    micropost = first_user.microposts.first
    micropost.user
    exit  #退出 

     至此简单的玩具应用已经完成。

     

    部署玩具应用

    git add -A
    git commit -m"Finish toy"
    git push
    git push heroku
    heroku run rails db:migrate
    heroku open

    完成后便可在heroku提供的网址上测试上线环境时的使用。 

    Posts共1条评论

    • Pic User: Jetty date: Monday May 07,2018

      此章内容参考学习于Michael Hartl的Ruby on Rails教程,如有不当之处,欢迎指出。

Pic

登陆进行评论

  • 国历日期:

欢迎来信