[转]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一起疯狂吧!

原文地址:https://www.cnblogs.com/visi/p/2114403.html