rails再体验(第一个程序)
掌握redmine plugin开发的目标在2016年未实现,2017年继续。
选择《Ruby on Rails Tutorial》教程,windows安装railsinstaller,该版本ruby为V2.1.8,和bitnami redmine-3.3.0版本一致。但rails版本为4.2.5.1,和redmine对应的4.2.6不一致。首先进行一次gem包更新:
- 启动终端。注意使用Railsinstall安装后自带的终端,终端里会设置环境。
- 修改gem源: bundle config 'mirror.http://mirrors.aliyun.com/rubygems/' 'http://gems.ruby-china.org/' # 2017.1.7 发现gems.ruby-china.org好用。
- gem install rails –version=4.2.6 –no-ri –no-rdoc
根据书中1.2.3章节在命令终端生成第一个程序: rails new first_app, 出现以下错误:
run bundle install
Fetching source index from http://mirrors.aliyun.com/rubygems/
Net::HTTPNotFound
进入第一个程序的根目录: cd first_app
重新运行bundle install,错误提示https://rubygems.org连接时认证错误,网上查询需要生成SSL认证,比较麻烦。直接修改first_app下的Gemfile:
source 'https://rubygems.org'
修改为:
source 'http://gems.ruby-china.org/'
更彻底解决的方法是让rails生成的Gemfile文件里就修改source,在RailsInstaller\Ruby2.1.0\lib\ruby\gems\2.1.0\gems\railties-4.2.6\lib\rails\generators\rails\app\templates目录下修改Gemfile文件(同时修改source源和 tzinfo-data版本),这样rails new创建的Gemfile就ok了。
再次运行bundle install,显示以下错误:
Using activesupport 4.2.6
Bundler::GemspecError: Could not read gem at D:/App/Coder/RailsInstaller/Ruby2.1
.0/lib/ruby/gems/2.1.0/cache/tzinfo-data-1.2016.10.gem. It may be corrupted.
Installing loofah 2.0.3
Installing mail 2.6.4
Using rails-deprecated_sanitizer 1.0.3
Installing globalid 0.3.7
Using activemodel 4.2.6
Installing jbuilder 2.6.1
An error occurred while installing tzinfo-data (1.2016.10), and Bundler cannot
continue.
Make sure that `gem install tzinfo-data -v '1.2016.10'` succeeds before
bundling.
按照提示安装gem:
E:\05 Create\Code\temp\railstutorial\first_app>gem install tzinfo-data -v '1.201
6.10' --no-ri --no-rdoc
ERROR: Error installing tzinfo-data:
invalid gem: package is corrupt, exception while verifying: undefined me
thod `size' for nil:NilClass (NoMethodError) in D:/App/Coder/RailsInstaller/Ruby
2.1.0/lib/ruby/gems/2.1.0/cache/tzinfo-data-1.2016.10.gem
看起来目前版本不支持1.2016.10版本,换个低点的版本:
E:\05 Create\Code\temp\railstutorial\first_app>gem install tzinfo-data -v '1.201
5.6' --no-ri --no-rdoc
Fetching: tzinfo-data-1.2015.6.gem (100%)
Successfully installed tzinfo-data-1.2015.6
1 gem installed
同时修改Gemfile中的版本:
gem 'tzinfo-data',platforms: [:mingw, :mswin, :x64_mingw, :jruby]
修改为:
gem 'tzinfo-data', '1.2015.6' ,platforms: [:mingw, :mswin, :x64_mingw, :jruby]
再次bundle install运行成功,安装了56个gems。
因为版本已经和教程中的差异比较大(教程为ruby 2.0.0,rails 4.0.0),中间顺便对gem和bundle进行了升级:
gem update –system
bundle update # 因为上面升级了Rails gem版本,所以必须要执行
bundle install # 再次安装所需的gem,其实已没有更新
启动rails server: rails server。 通过http://127.0.0.1:3000可查看第一个程序。
20170108继续。 经过上述折腾后,根据教程2.2内容, 增加User资源:rails generate scaffold User name:string email:string出错,而且没有任何提示。最后的解决方法是使用rails new app重新生成应用,再运行上述指令就好了,猜测和rails new app后修改了Gemfile里gem版本有关系。
注意rails generate生成的app\models\user.rb内容如下:
class User < ActiveRecord::Base
end
看起来没有模型没有任何属性,一开始以为又是rails出了问题。根据网上内容,发现就该如此(数据库会正常创建属性,但是模型类就不包含该属性。刷新了我对ORM的认识)。
完成数据库迁移(bundle exec rake db:migrate)后启动服务器(rails s),通过客户端访问创建的Users(http://127.0.0.1:3000/users)又出错了
Showing E:/05 Create/Code/temp/railstutorial/test_app/app/views/layouts/application.html.erb where line #6 raised:
TypeError: 对象不支持此属性或方法
Rails.root: E:/05 Create/Code/temp/railstutorial/test_app
Application Trace | Framework Trace | Full Traceapp/views/layouts/application.html.erb:6:in `_app_views_layouts_application_html_erb__1028411780_48770724'
继续搜索,找到答案,该文提供了3种解决方案。我用了第一种(删除了app\assets\javascripts\application.js文件中最后一行"//= require_tree .")解决,第3种方式看起来是根本解决,但对我的电脑无效。修改后访问正常:
转载于:https://www.cnblogs.com/lustforlife/p/6260498.html
rails再体验(第一个程序)相关推荐
- python windows窗口置顶_Python入门:第一个程序“Hello, world”
本文主要内容 安装Python 使用IDLE和基础交互模式 编写一个简单的程序 使用IDLE的Python shell窗口 本章将介绍Python和IDLE的下载.安装和启动过程,IDLE是Pytho ...
- 中国第一代程序员潘爱民的 30 年程序人生
作者 | 潘爱民 出品 | 程序员大本营 [编者按]搞技术是一件极其幸运的事情,不仅是我们迎来了最好的时代,亦在于我们的祖师爷大多还都健在甚至健谈,比如 Linux 之父 Linus Torvalds ...
- 百万畅销书带你学 Python:第一个程序
第一个程序 你应该在习题0上花了不少的时间,学会了如何安装和运行文本编辑器,以及如何运行终端.如果你还没有完成这些练习,请不要继续往下进行,否则后面的学习过程会很痛苦.下面这个警告你不要跳过前面内容的 ...
- 中国第一代程序员简史:中国龙简晶的程序人生
[CSDN编者按]本文的作者是CSDN的好朋友林兴陆,笔名小林.而文章的主人公则是18年前,CSDN的<程序员杂志>(2001年第五期)的封面人物简晶. 简晶的软件作品无论是广受好评的「中 ...
- 中国第一批程序员的“青春饭”已经恰完了,35+的程序员该何去何从?
一.缘起 关于35岁程序员"门槛","青春饭"诸如此类的话题,为什么从前没有听说过,而这两年突然火了这个话题?而且几乎已经成为行业内公认的"事实&qu ...
- 官宣!1024 程序员节日程发布,第一代程序员求伯君将出席大会
10月23-25日,"长沙 · 中国 1024 程序员节"将盛大举行.程序员节活动以开源为主议题,包括 2 场岳麓尖峰对话:2020 开源技术英雄会:10+场热门技术分论坛/峰会: ...
- java概述与第一个程序
目录 1.java是什么? 2.我们为什么学习java语言? 1.学习java语言的原因: 2.java语言的应用范围: 3.Java语言的发展史 4.java语言的体系结构 5.java语言的特点 ...
- Asp.Net Core微服务再体验
Asp.Net Core微服务再体验 原文:Asp.Net Core微服务再体验 ASP.Net Core的基本配置 .在VS中调试的时候有很多修改Web应用运行端口的方法.但是在开发.调试微服务应用 ...
- 中国第一代程序员简史:中国龙简晶的程序人生 | CSDN 人物志
[CSDN编者按]本文的作者是CSDN的好朋友林兴陆,笔名小林.而文章的主人公则是18年前,CSDN的<程序员杂志>(2001年第五期)的封面人物简晶. 简晶的软件作品无论是广受好评的「中 ...
最新文章
- 「SNOI2019」
- java arraystoreexception_208道高频 Java面试题答案6
- 从业务在线到互联互通,钉钉宜搭进入低代码3.0阶段新模式
- 如何使用busybox编译和生成最简linux根文件系统(rootfs)
- java中int,char,string三种类型的相互转换
- java中new与newitance_你真的弄明白 new 了吗
- Linux内核调试方法总结【转】
- word 的使用(六)—— 常用功能
- 沾化区php学校,推进校地合作 助力产教融合:滨州市技术学院与沾化经济开发区举行签约仪式...
- motion的移植和使用
- Eclipse安装插件详解
- h330 mini raid卡驱动 linux,戴尔h330阵列卡驱动下载
- antd源码解读(6)- Affix
- word公式快捷键使用
- 新世纪大学英语(第二版)综合教程第一册 Unit 3 (中英翻译和重点单词)
- 【搜索】单词方阵 luogu-1101
- 虚拟机迁移技术漫谈(转)
- 基于FPGA的信号发生器的设计
- springboot配置打印日志文件
- c4d工作平面模式关闭不了
热门文章
- 收藏 | LSTM模型结构的可视化
- 学术 | 基于深度学习的图像边缘和轮廓提取方法介绍
- 卡耐基梅隆大学CMU Brandon Amos博士论文《可微优化机器学习建模》
- rust地基蓝图在哪找_Rust错误处理的思考
- 深度学习与TensorFlow:VGG论文复现
- QGIS中如何加载identify
- mysql手工注入imformation_网络安全系列之十八 MySQL基本操作(PHP注入基础)
- 嵌入式linux面试题库,嵌入式linux面试题解析(二)——C语言部分三
- oracle怎么查询和插入表,Oracle查询一个表的数据插入到另一个表
- k8s边缘节点_KubeEdge v0.2发布,全球首个K8S原生的边缘计算平台开放云端代码