转载自http://12devs.co.uk/articles/writing-a-web-application-with-ruby-on-rails/
以下以一个小web应用程序来显示使用ruby on rails进行web开发的强大且高效。
ruby on rails的基本工具的安装这里不再介绍。
创建rails app
安装好rails之后,rails有一些常用的命令行使用,例如,创建一个project:
rails new bookmarks
其中,bookmarks是app的名字。运行该命令后,可以看出该命令做了些什么。rails为我们创建好了一般的web应用程序的必要文件和目录。
可以使用rails s命令来开启server
在浏览器上输入:http://localhost:3000就会显示一个welcome page。
对该应用程序添加资源(MVC)
在命令行上输入以下命令:
此时,可以看出,该命令做了些什么。这时,已创建了一个bookmark的MVC模型必要的一些文件。db/migrate/20140706091029_create_bookmarks.rb是一个用来更新数据库表单的脚本文件,执行rake db:migrate命令可以更新数据库表单(rake,即ruby makefile)。
开启服务器:rails s 。在浏览器上输入http://localhost:3000/bookmarks进入该应用程序主页,一个小型web程序已成型。
ror的一些gems可以方便快捷的实现某些功能
现在已经有了bookmark资源,我们需要添加用户并且为其认证。实现该功能的gem之一:devise。
在Gemfile文件中添加一行:gem 'devise', '~>3.0.0.rc'
然后install 该gem,在命令行运行bundle install,然后运行该gem的生成命令:rails generate devise:install。
控制台上出现了以下五步还需手动完成:
divise已经安装好了,并且完成了第五部,生成devise的相关views。
接下来我们还没有创建User model。rails generate devise User命令可以通过devise生成所需的User的migratinon文件(该表单应该包含email,以及password)和model,并且添加了devise对/users/*处理的route。同样的,同步到数据库表单,运行rake db:migrate。
User与bookmarks之间仍然是独立没有关联的, foreign keys的名字是model名字加后缀_id。添加一条目到bookmark表单,先创建migrate文件。
rails generate migrate AddUseIdToBookmark user_id:integer。执行rake db:migrate同步到bookmark数据库schema中。
然后,将has_many :bookmarks添加到user.rb,将belongs_to :user 添加到bookmark.rb中,这样,user和bookmark model彼此知道对应的关系。