• [转]10分钟写出你的第一个包含CRUD的Rails程序


    文/Terrance

    这篇文章针对那些对Ruby On Rails感兴趣的朋友,一步一步的带你在10分钟内写出第一个Rails程序,并且包含了完整的CRUD,也就是 Create,Read,Update,Delete(创建,读取,更新,删除)。通过这篇教程,你就可以看到相对于其他流行的网络应用程序框 架,Rails的优势有多么的明显。

    首先我们需要安装Rails,安装Rails的最简单方法是下载Instant Rails: http://instantrails.rubyforge.org/

    Instant Rails不需安装,绿色软件,直接解压缩到一个目录就可以,解压推荐用WinRAR的最新版,因为InstantRails的目录结构比较复杂,很多解 压软件会出错。解压好以后运行InstantRails.exe,Instant Rails会侦测到这是第一次运行,询问是否对配置文件进行初始化,回答是。Instant Rails将会打开,点击写着I的按钮,在下拉菜单中选择Rails Applications -> Open Ruby Console Window(你也可以使用windows中的命令窗口)。

    打开的命令窗口将位于Rails安装目录下面,首先我们需要做的是建立我们的第一个Rails程序。我们的第一个程序将是一个图片收集程序,允许用户添加,查看,修改,删除图片。为了简单,我们将省去上传功能。

    在提示符下面输入:

    rails album

    上面这行告诉rails我们要建立一个新的程序,名字是album。回车以后,rails将会自动建立程序的基本结构。屏幕上将会出现类似于这样的输出:

    C:\rails\rails_apps>rails album
          create
          create  app/controllers
          create  app/helpers
          create  app/models
          create  app/views/layouts
          create  config/environments
          create  config/initializers
          create  db
          create  doc
          create  lib
          create  lib/tasks
          create  log
          create  public/images
          create  public/javascripts
          create  public/stylesheets
          create  script/performance
          create  script/process
          create  test/fixtures
          create  test/functional
          create  test/integration
          create  test/mocks/development
          create  test/mocks/test
          create  test/unit
          create  vendor
          create  vendor/plugins
          create  tmp/sessions
          create  tmp/sockets
          create  tmp/cache
          create  tmp/pids
          create  Rakefile
          create  README
          create  app/controllers/application.rb
          create  app/helpers/application_helper.rb
          create  test/test_helper.rb
          create  config/database.yml
          create  config/routes.rb
          create  public/.htaccess
          create  config/initializers/inflections.rb
          create  config/initializers/mime_types.rb
          create  config/boot.rb
          create  config/environment.rb
          create  config/environments/production.rb
          create  config/environments/development.rb
          create  config/environments/test.rb
          create  script/about
          create  script/console
          create  script/destroy
          create  script/generate
          create  script/performance/benchmarker
          create  script/performance/profiler
          create  script/performance/request
          create  script/process/reaper
          create  script/process/spawner
          create  script/process/inspector
          create  script/runner
          create  script/server
          create  script/plugin
          create  public/dispatch.rb
          create  public/dispatch.cgi
          create  public/dispatch.fcgi
          create  public/404.html
          create  public/422.html
          create  public/500.html
          create  public/index.html
          create  public/favicon.ico
          create  public/robots.txt
          create  public/images/rails.png
          create  public/javascripts/prototype.js
          create  public/javascripts/effects.js
          create  public/javascripts/dragdrop.js
          create  public/javascripts/controls.js
          create  public/javascripts/application.js
          create  doc/README_FOR_APP
          create  log/server.log
          create  log/production.log
          create  log/development.log
          create  log/test.log

    现在,我们的第一个程序的基本结构就已经建立好了。我们的程序需要数据库来保存我们收集的图片,所以下一步,我们的目标就是建立一个新的数据库。一 般在这个时候,其他的编程框架就需要用一些数据库相关的工具,比如用SQL脚本。但是在Rails中我们并不需要其他的软件去完成这件事。

    先进入到我们刚刚建立好的程序的目录下:

    cd album

    这时你的提示符应该看起来有点像这个:

    C:\rails\rails_apps\album>

    然后在提示符下面输入:

    rake db:create:all

    程序输入如下:

    C:\rails\rails_apps\album>rake db:create:all
    (in C:/rails/rails_apps/album)

    这样,我们的数据库已经建立好了。下一步开始变得有趣了,我们要让Rails自动生成我们程序的基本CRUD代码,同时给数据库加入数据表。我们要做的是一个图片收集程序,所以我们需要基本数据有:图片的名称,图片的描述和图片的链接URL。

    在提示符下面输入:

    ruby script/generate scaffold Picture title:string description:text url:string

    看起来有一点乱,不过其实很简单。我们告诉rails我们要执行的动作是生成代码,并在我们上一步建立的数据库中加入一个叫做图片Picture的 数据表,里面的内容包括类型为字符串的图片标题title,类型为文字的图片描述description,类型为字符串的图片链接url。回车后,返回的 内容如下:

    C:\rails\rails_apps\album>ruby script/generate scaffold Picture title:string description:text url:string
          exists  app/models/
          exists  app/controllers/
          exists  app/helpers/
          create  app/views/pictures
          exists  app/views/layouts/
          exists  test/functional/
          exists  test/unit/
          create  app/views/pictures/index.html.erb
          create  app/views/pictures/show.html.erb
          create  app/views/pictures/new.html.erb
          create  app/views/pictures/edit.html.erb
          create  app/views/layouts/pictures.html.erb
          create  public/stylesheets/scaffold.css
      dependency  model
          exists    app/models/
          exists    test/unit/
          exists    test/fixtures/
          create    app/models/picture.rb
          create    test/unit/picture_test.rb
          create    test/fixtures/pictures.yml
          create    db/migrate
          create    db/migrate/001_create_pictures.rb
          create  app/controllers/pictures_controller.rb
          create  test/functional/pictures_controller_test.rb
          create  app/helpers/pictures_helper.rb
           route  map.resources :pictures

    这样,Rails已经为了我们生成了用来建立数据表的代码。我们运行它就好了。

    rake db:migrate

    这一步的输入如下:

    C:\rails\rails_apps\album>rake db:migrate
    (in C:/rails/rails_apps/album)
    == 1 CreatePictures: migrating ================================================
    -- create_table(:pictures)
       -> 0.0780s
    == 1 CreatePictures: migrated (0.0780s) =======================================

    现在数据表就完全建立好了。下一步要做什么呢?开始写冗长乏味的程序?很遗憾,Rails已经帮我们写好了。不相信嘛?现在就去看看吧。

    首先,打开Rails自带的调试HTTP服务器。

    ruby script/server

    屏幕上将会显示如下信息:

    C:\rails\rails_apps\album>ruby script/server
    => Booting Mongrel (use 'script/server webrick' to force WEBrick)
    => Rails application starting on http://0.0.0.0:3000
    => Call with -d to detach
    => Ctrl-C to shutdown server
    ** Starting Mongrel listening at 0.0.0.0:3000
    ** Starting Rails with development environment...
    ** Rails loaded.
    ** Loading any Rails specific GemPlugins
    ** Signals ready.  INT => stop (no restart).
    ** Mongrel 1.1.2 available at 0.0.0.0:3000
    ** Use CTRL-C to stop.

    如果你看到这些,证明你的HTTP服务器打开了。现在,不要关掉这个命令窗口。打开你的浏览器,去看看你刚刚建立好的第一个包含完整CRUD功能的网络应用程序(Web Application)吧!

    在浏览器中输入:

    http://localhost:3000/pictures

    当然你也可以直接点击这里的链接。

    怎么样?我们的第一个Rails程序还不坏吧? 点击New Picture将把我们带到添加新图片的页面,输入图片的名称,描述和链接然后点击Create将会把新的图片信息保存到数据库。尝试添加几个图片进入我 们刚刚建立的程序中,可以看到在列表页面中的右侧,每个图片都有Show,Edit和Destory功能,分别负责图片的查看,编辑和删除。

    就是这样,我们的第一个Rails程序建立好了,很简单,不是吗?

    总结

    整个过程中我们所有用到的和建立程序本身相关的命令就是下面这简单的几条:

    rails album

    rake db:create:all

    ruby script/generate scaffold Picture title:string description:text url:string

    rake db:migrate

    比起写几百行代码去完成相同的工作,Rails为我们节省了宝贵的时间,让我们把更多的精力放在程序的功能和界面上。当然,本教程中只介绍了Rails最基本的应用,还有更多方便有趣的功能等你去探索。怎么样?和Ruby On Rails一起疯狂吧!

  • 相关阅读:
    瓦力完成图
    树莓派学习笔记(6):让Raspbian支持中文、禁用休眠
    树莓派学习笔记(5):成功实现NAS家庭服务器(流媒体播放、文件共享及下载机)
    检测QQ在线状态脚本(20141022测试成功)
    树莓派学习笔记(4):利用yeelink实现在线硬件状态监控
    vi-vim :删除、撤销、恢复删除、复制删除
    sqlachemy中批量删除的问题
    vim 删除一整块,vim 删除一整行
    vim显示行号、语法高亮、自动缩进、添加下划线的设置
    CentOs6.7 python2.6升级到2.7.11
  • 原文地址:https://www.cnblogs.com/visi/p/2114403.html
Copyright © 2020-2023  润新知