分享 Rails 实践:把 LYNDA 的教程项目部署到了 3.2.2 环境下

dreamrise · 2012年03月16日 · 最后由 hhuai 回复于 2012年03月16日 · 3453 次阅读

准备看看这个视频:

[Lynda.com 出品 Ruby.on.Rails.3.基础培训视频课程].TLF-SOFT-LYNDA.COM.RUBY.ON.RAILS.3.ESSENTIAL.TRAINING-JGTiSO

**附带 PROJECT 源代码在这里:

http://www.lynda.com/Ruby-on-Rails-3-tutorials/essential-training/55960-2.html 这个小项目叫 simple_cms 是 2010 年的程序,只用到了 rails3.0,简单而纯粹无比。 但是我自己的环境装不好 rails3.0。(装 rails3 系统说 bundle 要 1.0.0 左右的版本?我搞不定这个降级的 bundle,而且这样倒退也没太大意义),就干脆直接在 rails 3.2.2 上用了。

搞定 mysql2 配置,搞定 db:create,db:migrate 后,启动服务正常。

但是首页都打不开,提示很多错,往往解决一个又出来一个。

看来 RAILS 从 3.0 到 3.2 变动还是有不少的。特别它这个是 3.0 测试版。。。所以需要改很多地方。

**这里有个比较好的 guild: http://webtempest.com/upgrade-rails-3-to-3-1/

然后有个问题一直解决不了:

就是/app/model 中的文件 require 了一个/lib 目录下的 rb 文件,系统总提示无法加载这些文件。同下面这个的描述: http://stackoverflow.com/questions/4074830/adding-lib-to-config-autoload-paths-in-rails-3-does-not-autoload-my-module

改了半天 application.rb 以及设置 autoload_paths 居然无效,是不是 RAILS 3.2 不支持了。(这个还请各位前辈指教下正确的方法,我在 ruby-china,rabel 这两个项目的源程序中都没发现这种引用)

最后只好直接改引用文件中的 require 'lib/position_mover" 为 require File.expand_path( 'lib/position_mover')

改完这些终于可以运行了。

*OMG 首页终于出来了。

才发现这个程序简单的一塌糊涂--没任何点击的地方。我也没有文档。只好再去看 route。结果 route 也简单的一塌糊涂: match ':controller(/:action(/:id(.:format)))' 直接一个通配符搞定。

那就只好去看有哪些 controller 了。因为我还没看过这个教程的视频,所以一切都靠摸索。

发现了有登录的地方,以及管理员验证之类的 controller。那些 CMS 的功能应该都在管理员登陆后才能用了。管理员注册的模块也找到了,但是需要登录才能建。那只能手工建立管理员了?

接下来的问题就是怎么创建一个管理员了。

特别是管理员密码,这个按传统都是 md5+salt 的了。db 下有个 sql 文件,但是这数据里面密码也是 md5 的值,如果导进数据库去也是白搭,没有明文的密码。

幸好,用 rails,还有有另外一条路来创建管理员。

那就是 rails console 了。在控制台下创建一个对象:admin = Admin.new() 再给他赋值各种属性,最后 save。就搞定了。

OK,赶紧发个贴试下:I am break in。

搞定后还是小有成就感。虽然没解决的问题还很多:

比如 css、js 文件的解析路径就有问题。直接指向了 assets/*css。但服务器找不到(求指教)

但是这个摸索的过程可是最好的 RAILS 实践学习。请各位前辈给力指教,哪些地方应该怎么做才是正确的方法。

喜欢看视频,他这个视频哪有下载吗。?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号