第一篇关于ruby on rails安装问题的博客

来源:互联网 发布:2017 天使投资数据 编辑:程序博客网 时间:2024/05/21 09:40

嘛,其实也不算转载,这是我在别的地方写的:http://ruby-china.org/topics/15655

不过想记录一下我学习的过程和遇到困难开始写博客,万一哪天遇到一样的问题可以查询一下,如果顺便帮到人就好了,就不做修改直接复制黏贴了,把时间放重点上。

搭建环境给个链接:http://ruby-china.org/wiki/install-rails-on-ubuntu-12-04-server

打算按照的学习步骤给个链接:http://huacnlee.com/blog/how-to-start-learning-ruby-on-rails/

到这里我已经完成了第一二步,但是其实我不小心跳了几步的,所以就到了现在的云里雾里了。

总之从头开始,我只有一个礼拜的时间了,不得不脚踏实地诶。

以下为正文:

记录一下我在搭建环境时出现的问题,我相信会有新手和我一样遇到这样的问题。

说一下环境:ruby版本2.0.0p247,rails版本4.0.0。

说一下学习ruby on rails的目的:我现在是大二的学生,因为各种原因开始了一个项目,要用到的是我从来没听过的ruby on rails,我甚至连网络框架都是第一次听,在学习ror之前我只学过C语言和数据结构以及语言是C++的游戏引擎而已,我相信如果我真能学会ror的话,这会是一个相当励志的故事。希望各位社区的大牛们多多指教,如果我会知道新手问题的答案的话,果断帮忙。(我很渣也不知道会不会的其实)

1.因为看到有个帖子说前往不要在windows下开发,所以我就奔去安装linux了,我安装的是deepin linux 12.12.1,但是貌似我的电脑(联想Y410P)和这个系统不兼容,然后我开了一个小时机才进入桌面,这个问题到现在也不能解决,不过进入系统之后不卡就先放下这个问题了。(如果有人遇到这个问题,成功解决掉的话分享一下,不甚感激)

2.按照Ruby on Rails 實戰聖經,安装了ruby,然后用

$ gem install rails --no-ri --no-rdoc

遇到问题了,老是报这样的错

ERROR:  Loading command: install (LoadError)    cannot load such file -- opensslERROR:  While executing gem ... (NoMethodError)    undefined method `invoke_with_build_args' for nil:NilClass

装了很多次都是报这个错,都是不行,最后灰心意冷的我重装了ruby,然后竟然神奇的没再报这个错了。
不过你以为搭建一个环境容易吗?不报错也别开心太早。因为它不报这个错就会报下一个错的。

3.然后就出现接下来的问题了

 Could not find a valid gem 'rails' (>= 0) in any repository

各种泪目,我就只好去找度娘,度娘高深莫测地说,孩子你要翻墙,才能得到救赎。问题是我才刚装了liunx没多久,怎么要用终端翻墙(我觉得下载都是在终端所以翻墙也是要终端翻吧),太高端了,我终觉得是安装方式有问题才搞得这么麻烦,所以我依葫芦画瓢按照wiki上的如何快速正确的安装 Ruby, Rails 运行环境来了一遍http://ruby-china.org/wiki/install_ruby_guide,最后

gem install  rails

成功了, :sunglasses: 。搞了这么久就是这个,所以说要多看看wiki诶

4.安装了这么久当然要去弄一个helloworld什么的,这helloworld不去弄一下,总觉得自己没学过这东西一样。之前搞游戏引擎的时候也就是成功弄出了helloworld之后就觉得自己学会引擎一样特有成就感,我想着这ruby应该也是要这样。所以果断

$ mkdir projects$ cd projects$ rails new demo

然后

$ bundle install

然后犯难了

Bundler::GemfileNotFound

这是怎么闹,魂淡,不就建个helloworld而已,不用这么折腾我吧。我又跑去找万能的度娘,然后度娘喷了我一脸,你傻逼啊,你都不进去文件夹bundle毛线。好,我错了。

 $ cd demo

5.我以为这就是最后的考验,没想到,bundle就遇到这样的问题了

An error occurred while installing coffee-script-source (1.6.3), and Bundlercannot continue.Make sure that `gem install coffee-script-source -v '1.6.3'` succeeds beforebundling.

我就按照他的指示

$ sudo  gem install coffee-script-source -v '1.6.3'

没多久又报了差不多的错,我bundle了一个小时还没完,找度娘,度娘嫌我太笨没告诉我问题所在,灰心丧气外加作死赌气之下敲了

$ sudo bundle install

好吧,其实前面个也有说权限问题,由于报错的我就只看着红色字体然后自动忽略掉了

6.好吧,终于可以到神圣的

$ rails s

了,但是我这真心曲折,又遇到了新问题

Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)

不过这个问题一上网找就能找到解决方案了,直接在Gemfile里面加入

gem 'therubyracer'gem 'execjs'

然后就成功了(喂,还要bundle一次吧,别和谐掉关键字啊)

7.我在view上补充了一些东西,然后再

$ rails s

又报了

Address already in use - bind(2) (Errno::EADDRINUSE)

的错。这明显就是你打电话过去然后智能客服姐姐告诉你,你在拨打的电话正在通话中的节奏,重点的还是和对方通话中的就是你自己另一台手机。这里有两种做法,一种就是直接用你正在通话中的手机,另一种就是你挂掉那个正在通话的手机再拨打一次电话过去。这很明显第二种方法是脑袋有洞的做法,但是这样的做法我持续了一个礼拜才意识到这是有病的做法。不过当你是要换一个工程的时候还是需要kill掉连接的吧,所以还是贴一下步骤。

$ netstat netstat netstat -ntlp | grep 3000$ kill -9 ×××(***就是上一个命令最后那个数)

8.之后我按照之前的Ruby on Rails 實戰聖經,依葫芦画瓢,scaffold鷹架功能會自動產生一組Model、Views跟Controller程式碼,

$ rails g scaffold person name:string bio:text time:string$ bundle exec rake db:migrate

问题是没有弹出应该弹出来的东西(确切来说是什么都没有弹出来),我也没有管太多,直接rails s
然后主页君就爆出要我去执行一下

rake db:migrate RAILS_ENV=development

执行一下,然后就爆出错误

We're sorry, but something went wrong.If you are the application owner check the logs for more information

此时此刻内心汹涌出N只羊驼,敲个代码这容易么我。
但是我还是执着的跑到log文档看看,然后log最后一行说time:string是不合法的,要么删掉要么就改一下格式

还有一种错法是主页显示

NoMethodError in StudentCoursesController#createundefined method `Classroomnumber' for #<StudentCourse:0xb994811c>Extracted source (around line #30):    respond_to do |format|      if @student_course.save        format.html { redirect_to @student_course, notice: 'Student course was successfully created.' }        format.json { render action: 'show', status: :created, location: @student_course }   else

这个时候我就大概知道classroomNumber写成Classroomnumber了。错多了就习惯了。

总之搞到现在,内心是各种挫败感交集,学习之路一片渺茫
还有,请大牛们不要喷我这些低级错误,刚入门啥都不懂,继续奋斗