rails学习第二天:解决radrails导入新项目出现的问题
一、
第一次导入depod_k项目,会自动使用3001端口,不过访问
http://localhost:3001/查看环境或者直接访问
http://localhost:3001/admin时
都会出现:
Application error (Apache)
Change this error message for exceptions thrown outside of an action (like in Dispatcher setups or broken Ruby code) in public/500.html
而我按《敏捷开发》里一步步做出来的却没有这个问题。于是我把自己根据书里创建的项目中的environment.rb代码覆盖到导入的项目上,再重启webrick,查看环境就没有问题了。此问题解决。
二、
不过访问:
http://localhost:3001/admin又出现:
Errno::ENOENT in AdminController#index
No such file or directory – /tmp/mysql.sock
RAILS_ROOT: script/../config/..
而同样我按《敏捷开发》里一步步做出来的却没有这个问题。于是我把整个database.yml都复制到导入的文件里,仍然不行(后来才知道是忘了重启)。于是google到这里:http://rc.org.cn/viewthread-162:
在Ubuntu下用apt-get默认安装了Mysql后运行rails程序会出现
QUOTE:
No such file or directory – /tmp/mysql.sock
这样的错误,其实是由于MySQL没有安装在默认的地址下的原因,解决办法是如果您有安装phpmyadmin的话,登录进去,选择系统变量会看到一项
QUOTE:
socket /var/run/mysqld/mysqld.sock
这样的字眼,后面的就是socket的地址,把database.yml里加上一行:
QUOTE:
socket: /var/run/mysqld/mysqld.sock
再中止Webrick,重新启动就可以正常运行了。
我是直接把database.yml里的代码复制过去,但是没有重启Webrick,于是重启了下,刷新,发现就没有问题了。
三、
后来我又导入depod_r,一切都按刚才导入depod_d时操作,但访问:http://localhost:3002/admin,又出现:
ActiveRecord::StatementInvalid in AdminController#index
Mysql::Error: #42S02Table ‘depot_development.users’ doesn’t exist: SHOW FIELDS FROM users
RAILS_ROOT: ./script/../config/.. 估计是由于数据库没有那个表。因为这个项目是最后的项目了,中间肯定还得修改下数据库。说实话,这本《Web开发敏捷之道--应用Rails进行敏捷Web开发(第2版)》看得我是一头雾水,即便结合操作也仍不明白怎么回事,跟以往ASP、PHP开发流程太不一样了,看来得直接找个项目直接做了,不懂再看书
