您的位置:首页 > 编程语言 > Ruby

Ruby on Rails起步

2011-02-19 15:19 141 查看
在三种主要的动态语言中Perl、Python和Ruby中,鉴于下学期的软工需要一个OO的MVC架构,我还是选择了Ruby on Rails,做一个在线的考试系统应该还是足够的。



但是对我初学者不巧的是rails的新版本到了3.0.4,ROR的有些语句略有不同,还是没有听过来人的建议,没有倒回2.3.x,就从Rails3开始了。



一上手,跟书上的代码有些许不同。(我的是windows下的rails环境)

1、创建一个项目过去是 >rails projectname ,而现在是 >rails new projectname。

2、rails默认设置的数据库是sqlite3,但是1.9的ruby没有合适的sqlite3,一种解决是安装sqlite3-ruby-1.3.3,但是好像后面还是会出问题,而我是在

D:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.4/lib/rails/generators/rails/app 里找到app_generator.rb

在 class_option :database, :type => :string, :aliases => "-d", :default => "sqlite3", 这一行把default的数据库改成mysql,因为机子上本来就是配置了mysql。

3、创建了项目之后,进入项目目录,开启服务器的语句

原来:>ruby script/server

现在一看,傻眼了,script下就rails一个文件

现在:>rails server 或者 >rails s



4、就算这样还是会出错,好象是说mysql2的神马问题

于是参考网上意见,先在目录下执行 >bundle install



5、终于可以运行服务器了,修改下controller下的脚本,添加index动作,访问这个controller,结果是mysql无密码访问被拒绝= =。废话,没密码谁让你访问啊,于是修改了database.yml的密码。

但是依然不行,这次的错误是 no route matches,继续狗狗下,正解是把config/routes.rb中的

# match ':controller(/:action(/:id(.:format)))' 注释去掉,但是上面有句注释:This is a legacy wild controller route that's not recommended for RESTful applications.



简而言之,把许多的ruby脚本执行换成了rails的命令吧。





这样算是终于可以了,真是才开始呢。。。



-----------------------------继续----------------------------------------------------------------

P.S. 我的学习是基于the ruby programming language和ruby on rails: up and running这两本书的



1、rake ad:migrate更改为 rake db:migrate

以及创建的数据表,记录migration信息的表由schema_info变为schema_migrations。id字段是Rails自动创建的。





2、ruby script/console更改为rails console或者rails c,其实就是启动了irb并载入了项目信息。



3、在ror:up and running这本书的例子中,对于创建新对象irb返回的内容不一样,好像以前会分配一个值,但是现在新对象的属性通通为nil
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: