Ruby on Rails起步

本文记录了一位新手使用Rails 3.0.4搭建在线考试系统的经历,包括环境配置调整、常见问题解决及代码差异等实用经验分享。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在三种主要的动态语言中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

 

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值