barriers / 阅读 / 详情

用ruby开发,w网页访问方法时提示template is missing,怎么解决呢

2023-08-24 21:05:53
共1条回复
康康map

在Ruby中,一切皆是对象。下面举一个例子来更直观地说明Ruby语言的这一特点。

在Java中,求一个数的绝对值的代码如下。

int c = Math.abs(-20);

而在Ruby语言中,一切皆是对象,也就是说“-20”这个数也是一个对象,因此,求一个数绝对值的Ruby代码形式如下。

c = -20.abs 这样的代码编写方式是不是更形象一些呢?

Rails 框架是一个更符合实际需要而且更高效的Web开发框架,Rails结合了PHP体系的优点(快速开发)和Java体系的优点(程序规整)。

Rails是一个全栈式的MVC框架,换句话说,通过Rails可以实现MVC模式中的各个层次,并使它们无缝地协同运转起来。

在实际开发一个MVC模式的Web应用项目时,如果使用Java开发,需要用到Struts、Hibernate和Spring等框架,而且需要额外整合3个框架开发出的内容。而使用Ruby语言开发相同的项目时,只需要用到Rails框架就可以完成。

RoR的效率肯定要比Java高一个数量级,这确实是事实,比PHP至少也要高好几倍,这也是事实,这一点在这篇文章中不展开了,但是为什么开发效率这么高,我也想谈谈我的看法,当然还很不成熟的看法:

一、主要原因是ruby语言的语法非常强大我记得庄表伟说过一个观点:“框架是强化的语法”,意思就是说语法比较弱,所以才需要n多框架,如果语法很强,框架就很少。这一点在Java和ruby身上得到了验证。

1、ruby的open class VS Java的AOP,反射、动态代理,字节码增强等技术JDK1.3开始引入反射,就已经打开了Java这种静态类型语言通往动态类型语法的潘多拉魔盒。随后的动态代理技术,字节码增强技术,静态和动态的AOP技术开始层出不穷,为什么呢?就是需要在程序运行期动态改变对象的行为。但是对于ruby来说是open class的,语法级别上就支持程序运行期修改对象行为,所以Java需要很复杂技术才能实现的功能对于ruby来说就是非常简单的搞定了。

2、ruby的duck typing VS Java的IoC,泛型Java的IoC不用说了,泛型在库级别也开始广泛使用。IoC就是根据对象行为来进行对象组装,泛型就是在不确定对象行为的情况下确定对象的交互。但是ruby的对象行为是在运行期才确定的,天然就是泛型的,行为不是静态的,所以不需要IoC。

3、ruby的block,closure VS Java的匿名内部类大家对spring的Template肯定印象很深刻,但是这是ruby标准的用法,所以各种资源释放,异常处理在语法级别上就支持的很好,做起来很简单。

4、ruby的Meta programming VS Java缺乏method_missing机制大家耳熟能详了,Java没有这么强的Meta programming,很多ruby magic耍不出来。

5、脚本语言 VS 编译语言这也是一个很大的优势,脚本编程速度确实快。

二、rails框架确实做的很棒

1、full-stackrails是一个概念一致的fullstack框架,不知道为什么,在Java世界目前只有Rife这一个可以和RoR相提并论的fullstack框架,但是Rife的实现并不好(作者从PHP转过来的,和DHH爆发过口水战)。不过因为底层语法支持的不同,用Java是做不出来RoR框架的。因此也有人用Groovy做Grails,不过这帮人不太争气。

2、CoC这个不用说了,现在很多Java框架开始吸收这一点。

3、为web开发良身打造web开发需要用到各种技术全部提供,绝对的贴心,如果用Java,这些东西都需要自己集成或者自己实现,省了一大堆麻烦事。

4、开发测试部署快速这个不说了,Java劣势太明显了

关于“效率提高的来源”问题,我的理解就是次要复杂性被ROR降低到了极致。说的难听一点,不是ROR太聪明,而是我们以前做得蠢事太多了。各种各样的xml, taglib,单元测试困难 ... ...

做过项目的人都知道这些次要复杂性很多情况下真的是要命的。ROR没有降低软件的内在复杂性,也就是业务问题。但是它把复杂性降低到无限趋近于业务复杂性,也有人称ROR是Web开发的DSL。而解决业务问题正是人发挥聪明才智的地方,ROR不能代替人,但是它把人从次要复杂性的泥潭之中解救了出来。

相关推荐

rails是什么品牌

rails是来自加州的衬衫品牌。rails的衬衫款式多样特别,充满清新的气息,很受大众的青睐。衬衫是一种穿在内外上衣之间、也可单独穿用的上衣,男衬衫通常胸前有口袋,袖口有袖头。中国周代已有衬衫,称中衣,后称中单。汉代称近身的衫为厕牏。宋代已用衬衫之名。现称之为中式衬衫。公元前16世纪古埃及第18王朝已有衬衫,是无领、袖的束腰衣。14世纪诺曼底人穿的衬衫有领和袖头。16世纪欧洲盛行在衬衫的领和前胸绣花,或在领口、袖口、胸前装饰花边。18世纪末,英国人穿硬高领衬衫。
2023-08-18 11:22:011

ai 时代,面对繁杂的 api,学 rails 有捷径吗?个人比较偏爱通过做来学。

关于学rails的捷径如下:1.集中学习常用的API:学习Rails的过程中,需要掌握很多的API,在学习的过程中并不需要全部掌握,只需要掌握常用的API,能够胜任开发项目即可,不必要求全。通过将常用的API整合到一个地方进行学习,可以极大地提高学习效率。2.通过仿制项目进行学习:在学习Rails的过程中,动手编写代码非常重要。通过找到一些优秀且适合自己水平的练手项目,对于把理论转化为实践非常有帮助。同时也可以从中了解更多的开发技巧和解决问题的方法。3.精简阅读文档:阅读文档是学习Rails过程中非常重要的一部分,例如Ruby On Rails 指南。但是在阅读过程中我们并没有必要详细阅读每个细节,可以看重要的部分和自己不熟悉的地方,这样会教我们一些重要概念,最重要的是能够在遇到问题时知道去哪里查找答案。关于辅助学习工具如下:1.RubyMine:RubyMine是JetBrains公司推出的面向Ruby开发者的IDE工具。它提供了很多有用的工具,例如代码分析、调试、自动补充、Version Control等功能。尤其是对于初学者来说,RubyMine可以帮助编写正确和高效的代码。2.Pry:Pry是一种交互式的Ruby Console,是Ruby的调试器,在控制台下可以进行Ruby编程。通过Pry,可以更好地理解并掌握Ruby语言的调试方法。3.RailsCasts:RailsCasts是一个非常流行的免费Rails教学视频网站,该网站的作者Ryan Bates,曾经在他的网站上发布超过300个Rails相关的视频教程。这些教程囊括了从基础到高级的RubyOn Rails的各个方面。RailsCasts非常适合初学者,又快又好的入门教材。拓展知识:1.Ruby On Rails:Ruby on Rails是一款以Ruby为基础开发的基于MVC设计模式的Web应用程序框架,它强调"约定优于配置"的设计哲学,以便开发者可以专注于应用程序的业务逻辑而不是复杂的配置并减少重复的代码。2.MVC模式:MVC是一种软件架构模式,将一个应用程序分成三个主要的方面:数据、视图和控制器。MVC允许用户通过更改视图或控制器来修改应用程序,同时不会影响到数据层。3.RESTfulAPI:RESTful是一种架构风格,基于Internet白皮书之上的一种规则,包括Client、Server、Resource、Message、Interface五个组成部分。现在很多的互联网应用都采用RESTful API接口完成。
2023-08-18 11:22:161

Rails内存优化

我们知道Rails应用的内存占用通常都是比较高的,尤其是比较重型的全栈应用内存使用更接近1G(当然同时也包括想sidekiq这样加载整个Rails应用的ruby进程),所以我们通常对应这种情况都采取一种比较tricky的方式,使用像 puma_worker_killer 这样的监控程序,监控rails进程达到一定内存占用后将其重启。也就是说应用一开始的内存占用通常都在100~300MB之间,随着时间的推移进程会创建大量的『对象』内部又会进行数次内存分配和回收,所以内存就会不断飙升。 在我们知道了基本情况之后,那就该说说正题如何优化Rails的内存占用,解决方案有若种,我们这里讲解一个最容易实施而且见效最快的方式,就是从内存分配入手。ruby使用glibc的malloc(3)进行内存分配,这是一个比较古老的内存分配器,性能比较低分配时会产生大量碎片。所以真的这一点,现在由很多性能比较出色由兼容原有API和以及被验证过的特性的新分配器,如jemalloc和tmalloc,这里我们就使用jemalloc作为Ruby应用的内存分配器,来看看能达到什么样的优化效果。 jemalloc是facebook出品的,最早用于FreeBSD中的内存分配器,后来像firefox从3.0也开始使用它,redis从2.4之后默认在linux上使用jemalloc。既然有这么多性能敏感型的软件都使用了jemalloc那它一定有过人之处。 jemalloc的特别之处在于它融合了其他内存分配技术的优势,并且采用多级内存分配,线程池缓存tcache还有划分内存区来减少线程间锁的争用。 jemalloc结构: 多级内存分配 :jemalloc根据对象的大小,将其归为划分为 small object, large object和huge object三类 Arena : jemalloc 没有像malloc那样对内存的划分都几种在一个区域中管理,而是使用多个小块的内存区域来分别管理,内个小块称为"arena" 。 线程池缓存thread cache :tcache是分配线程的缓存空间,jemalloc使用tcache来减少线程内存分配中锁竞争,从而提升分配效率,每个tcache对应一个arena。 这一步我们来看看应用Jemalloc到我们的ruby进程中到底能有多大的提升呢。 安装 我们选择在2.4.1版本上进行测试。除了上面这种安装方式外,也可以通过gem包来安装 jemalloc-rb 内存使用 我们在同一个应用运行的两台服务器中的一个上面安装的jemalloc,而另一套作为对照组没有安装。 这里就贴出性能差距最明显的一个进程 rails应用的sidekiq进程 没有使用jemalloc的服务器上面的sidekiq进程 使用jemalloc的服务器上面的sidekiq进程 可以看到差距是很明显的,当然不是每个进程都有这样的优化效果,这个我们总结的时候再说。 从上面的jemalloc的前后对比图中我们能够看出jemalloc的优化还是有明显效果的。至于为什么sidekiq和puma之前的差距这么大,这就引出了,其实jemalloc仅是从内存分配的程度去优化和改进内存使用和性能,在你的应用程序大量产生对象,并且长久运行下去的情况时,效果就比较明显,而如果应用本身做的就比较精简,从程序角度优化的比较好的话,jemalloc的提示就不明显。所以说jemalloc可以为你的应用内存性能解燃眉之急,但是从系统性的角度出发,还是从自身出发优化好应用本身的性能。
2023-08-18 11:22:361

ruby and rails是什么

光这两个单词是红宝石和地板的意思.
2023-08-18 11:22:512

如何在Rails中建立后台管理页面

  解决后台管理页面创建的终极解决方案是:active_admin。据网友评论说,有了 ActiveAdmin,创建 Rails 应用的管理界面就像儿戏。你会有一个很好的仪表盘,图形化 CRUD 界面以及更多东西。非常灵活且可客制化。
2023-08-18 11:23:002

rails怎么给前端写api实现前后端分离

Rails的初始准备见:Rails 处理跨站请求准备完这个,接下来我们就只要管Control怎么写就行了。首先来尝试一下get,最简单。 def index json_str = {"xx" => "hello"}.to_json render :json=>json_str, status=>"200" end在这里我们用了一个to_json方法来处理,把Hash转换为json格式,to_json方法是Rails中特有的,并非Ruby本身的方法。接着我们就可以滚去前端了:在需要调用的位置使用:$http.get("http://localhost:3000");,这是最简单的获取方法,当然我们自然不可能获取了就走人,这只是一个测试,接下来我们要使用then来进行get之后的操作。提示:使用$http接收之后json都会经过fromJson等一系列方法,务必保证收到的是JSON,否则会报错。.then(function(res) { console.log(res); angular.forEach(res.data, function(value, key) { $scope.message.push({author: key, content: value}); });});我们把get的分号去掉,加上这个,为了确定res收到的是什么,我们可以在控制台输出看一下,res.data里存储的就似乎收到的json(Object),用angular.forEach遍历即可。这样一个简单的get就完成了。POST相比较之下就比较折腾了,但也不是很复杂,最主要的是要确定怎么样才能获取POST的值,这里并没有像$_POST这样简单的变量。在Controller 详解中我们知道:如果在初始化脚本中开启了 config.wrap_parameters 选项,或者在控制器中调用了 wrap_parameters 方法,可以放心的省去 JSON 格式参数中的根键。Rails 会以控制器名新建一个键,复制参数,将其存入这个键名下。因此,上面的参数可以写成:{ "name": "acme", "address": "123 Carrot Street" }会自动进行转换,然后就可以用对应控制器名来访问。这里我们检查config>initializers的对应文件夹,发现默认开启,,使用这个黑科技。 def create json_str = params[:article] json_str = json_str.to_json render :json=>json_str, status=>"200" end我们的Controller是ArticlesController,所以很明显的这样子获取传进来的值,转换为json,接着传出(只是一个测试,理论上接下来要实验写入数据库)。接下来开始写前端的部分:$http.post("http://localhost:3000/create", message)简单的POST操作,尝试是否成功获取到值。post的参数非常有意思:post(url, data, [config]);其中data可以传入任意类型,他会尽可能的转换成json传入,之后获取到的值也会用fromJson尽可能的转换,供之后使用。在post的之后是由是否成功来进行分支处理的,这里我们只写success。.success(function(res) { console.log(res); $scope.message.push({author: res.author, content: res.content});});一样,可以在控制台看看输出的值,会发现是一个json的Object,没有其他信息,直接使用即可。
2023-08-18 11:23:191

安装Rails时如何安装老是失败.请教是什么原因

  安装Rails时如何安装老是失败.请教是什么原因,解决办法(1).安装程序拒绝安装或启动如果硬件组件与Windows7不兼容,就可能导致安装失败,或无法启动安装程序。所以在安装之前要确保Windows7可以检测到所有的系统硬件,并且这些硬件包含在Windows7的硬件兼容性列表(HCL)中。建议大家在安装Windows7之前,进行必要的兼容性检查,如果已经开始安装,检查兼容性就已经晚了。如果是升级安装或者双系统安装,我看可以重启到原有系统,然后配合下列参数启动安装程序进行检测。“/1394debug:”,在火线(IEEE1394)端口的特定通道上启用内核调试。“/debug”,通过COM1或COM2端口启用内核调试。“/usbdebug:”,通过到特定目标设备的USB端口启用内核调试。这些选项可以将安装程序置于调试模式,有助于判断故障原因。如果安装程序检测到硬件存在冲突,则可以通过配置硬件以消除冲突。(2).安装程序报告介质或DVD出错如果直接从Windows7的安装光盘进行安装,或通过发布共享从网络安装,可能还会遇到介质错误导致安装失败的问题。对于从DVD安装的情况,我们可以尝试清洁DVD光驱,以便其更好地读盘,或者更换光驱、光盘。对于企业用户,客户端一般是从共享发布中进行共享安装,一般是共享中没有包含所有的安装文件,或者到共享的网络连接有问题,大家可从这两个方面进行排错。(3).安装程序报告系统资源不足微软最近公布了Windows7安装的最低硬件资源要求,即至少512MB的内存和大约25GB的硬盘空间。对于某些老机子用户,如果没有达到Windows7安装的最低内存需求,则安装程序无法启动。如果安装程序可以启动,但检测到硬盘空间不足,那么也将无法安装,除非我们重建分区,或删除原有分区,已获得足够的空间来安装操作系统。对于此类安装故障,Windows7会有明确的错误提示,排错当然也非常容易。(4).遭遇安装程序突然停止响应排除上面的所有因素,有的时候我们还好遭遇安装程序突然停止相应的情况。通常的情况是,Windows7的安装本来在顺利进行,突然我们发现安装停止了响应,一直停止当前的界面中安装没有任何进展。这种情况下,有时我们会看到stop的错误提示,有的时候什么也没有,系统就像死机了一般。如果有安装stop的错误提示,但是大部分stop错误都是一些晦涩难懂的错误代码,并不能明确告诉我们哪里出现了问题。此时,我们可以用笔记下这些错误号码或代码,然后到微软知识库(点击进入)查询了解详细的信息,然后进行排错。此时安装不能进行,我们通常需要按下Ctrl+Alt+Del键重新计算机以中断错误,有的时候按组合键无效我们需要按下计算机上的电源按钮强制重启系统。一般情况下,在我们重启计算机后会直接进入安装程序,安装继续进行。某些情况下,可能还会看到启动菜单,如果是这种情况,我们可选择“Windows安装程序”选项,以便让安装程序继续进行。如果安装程序再次停止响应,就需要重新启动计算机,有时候可能需要尝试多次才能完成安装。此类故障一般是一些突然因素导致,重启可解决问题。不过,内存和CPU也可能是导致问题的根源,这需要我们进行更加复杂的排错,一般情况下更换硬件会解决问题。
2023-08-18 11:23:271

rails 判断值有没有改变

挂到分给谁大飞哥
2023-08-18 11:23:361

Ruby on Rails开发效率高,到底是因为Ruby语言还是Rails框架

应该这样说:Ruby提供了快速开发的能力,Rails框架将这种能力发挥到了极致。Rails本身包含了大量Web开发的最佳实践,但不意味着你不用Rails,开发效率就不高,事实上我现在已经很少用Rails了,我现在用的比较多的是Sinatra/Padrino/Grape,开发效率也非常高,从我个人使用角度来说,我觉得比Rails更好用,开发效率更高,学习成本更低。
2023-08-18 11:23:442

rails 向数据库插入数据时怎么跳过before_create

save:rails中的save其实是create_or_update,新建或修改记录!不一定是新建,切记 new :只是在内存中新建一个对象,操作数据库要调用save方法。 create = new + 执行sql。 build:与new基本相同,多用于一对多情况下。还有一个不同请看使用示例 !:new!, create!, build!与new, create, build的区别是带!的方法会执行validate,如果验证失败会抛出导常。 save是实例方法,而create, build, new是模型类的类方法还有另外一种说法,也挺好,如下 首先说new吧,app = App.new(params[:app]),这个是用给定的params来实例化一个app对象,注意此时只是初始化了一个对象,ruby只是在内存里面给app分配了一个内存地址,但是,这 个地址还没有指定任何的有效的内存,所以接下来ruby要做的就是调用model里面的initialize函数来根据给定的参数进行初始化这个对象,并将该对象保存到堆里面。 对于new!来说,这个跟new相比,就是在save到数据库的时候,如果save失败,就会报一个错误。 对于create来说,过程大致跟new差不多,唯一的区别是,create = new + save,即create一步操作等于new和save的两部操作。 对于create!来说,类似于new! 过程大致也是跟new!差不多 区别是create! = new! + save 如果保存失败的话会返回一个错误。 对于build来说,主要的混淆的地方在于与new的区别,其实,我认为build是new的一个别名,但是用的地方可能跟new有点区别,在我看来,build大多是用于有关联关系的对象模型的时 候,用来创建子model用的,比如说 Person 与 Order是一对多的关系,那么我们可以用 @persion.build()方法来创建于该person对应的orders
2023-08-18 11:23:541

最好用的框架是哪个?CI,YII,rails,thinkphp哪个好?

只要能写一个完整的项目,不管用哪一个框架都好
2023-08-18 11:24:022

求冀教版初二英语下册34课Trains Go on Rails!的译文!!!

译文没有现成的,我帮你手工翻译,要一会.Inthe1700s,manyinventionswereworkingonthesteamengine.Inthe1760s,ascientistinEnglandinventedawaytoputsteamenginesandwheelstogether.Soon,peoplehadanewtypeoftransportation:thesteamlocomotive.AnEnglishengineerdrovethefirststeamlocomotiveonaroad,butitexplodedIn1804,alocomotivecarriedaboutsevenpassengersashortdistanceonsomeironrails.Itwasthefirstrailway!ItwasinEngland.ThefirstpassengerrailwayopenedinEnglandin1825.thefirstpassengertrainwascalledtheRocket.Duringthe1830s,countriesallovertheworldstartedtobuildrailways.Afterfiftyyears,railwayscoveredmostcountries.Manytrainstationsbuilttomakeiteasierforpassengerstogetonandoffthetrains.Earlytrains,liketheRocket,hadatopspeedof50kilometersperhour.Eventhebeststeamlocomotiveswereslow.Theycouldonlygoabout80kilometersperhour.Today"strainsaremuchfaster.Theytravelatabout240kilometersanhour.Thefastesttrainscango380kilometersanhour.
2023-08-18 11:24:111

安装Rails时如何安装老是失败.请教是什么原因

安装Rails时怎么安装老是失败。请问是什么原因当我在命令行下输入如下命令时,出现这种问题,请问大家这怎么解决,究竟是什么问题。C: ubyin>gem install rails --remoteERROR: While executing gem ... (Zlib::BufError) buffer errorC: ubyin>gem install rails -remoteERROR: While executing gem ... (OptionParser::InvalidOption) invalid option: -mote------解决方案--------------------试试看这个C:> cd rubyinC:> ruby gem.rb install rails -y再不行的话ruby gem --help
2023-08-18 11:24:191

在rails中params有什么作用

这是一个HASH,当客户端有请求到服务器时,需要一些参加,这个PARAMS就是用来包装这些参数的
2023-08-18 11:24:461

php 有没有 rails类似的框架

  Akelos  Akelos PHP框架是一个类似于Ruby on Rails的框架,是基于MVC(Model View Controller)设计模式的web应用开发平台。由于Akelos对服务器唯一的要求就是支持PHP,与其他类似框架相比它的代码应用写得较少,因此它可以在大多数共享主机服务器上运行,它通过约定俗成代替配置来帮助开发人员减少代码的编写数量。Akelos可以支持URL的改写、数据库移植等内容,它的主要目的在于,帮助程序员开发基于数据库的多语言Web应用程序,依据MVC模式加快复杂的 web 应用程序的创建。  CakePHP Framework  CakePHP 无论对于初学者还是职业PHP开发者都是很好的选择。它基于与Ruby on Rails同样的原则而设计,它十分注重快速开发——这使得它成为一个非常好的用于RAD的开发框架。它快速增长的支持系统,简洁性和可测量性使得 CakePHP成为今天可用的最受欢迎的PHP开发框架之一。  CodeIgniter PHP Framework  CodeIgniter 是一套小巧但功能强大的PHP 框架,做为一个简单而"优雅"的工具包,它是一套专为PHP 开发者建立功能完善的Web 应用程序。如果你是一个使用虚拟主机,并且为客户所要求的期限而烦恼的开发人员,如果你已经厌倦那些难而且效率不高的框架,你一定会喜欢CodeIgniter。  Fusebox Framework  Fusebox是构建ColdFusion和PHP Web 应用程序最流行的框架。它的目的是使应用程序更易于创建和维护,并使团队开发更加容易。  Php On Trax  Php On Trax是一个采用MVC架构,适用于PHP5与PHP4环境,基于Ruby on Rails框架思想的web开发与持久层框架。它包含了创建依赖于数据库的Web系统所需要做的所有事件,是Ruby on Rails框架的一个真正PHP克隆。  HPDevShell Framework  PHPDevShell是一款开源(GNU/LGPL)的快速应用开发框架,用于开发不含 Javascript的纯PHP。它有一个完整的GUI管理员后台界面。其主要目标在于开发插件一类的基于管理的应用,其中速度、安全、稳定性及弹性是最优先考虑的重点。其设计形成了一个简单的学习曲线,PHP开发者无需学习复杂的新术语。  OpenBiz PHP Framework  Openbiz Framework的设计目标是节省构建复杂应用系统的开发投入和缩短开发时间。借助于Openbiz的帮助,应用程序的开发将基于完善的MVC架构建立,以Metadata驱动为核心描述业务逻辑,支持多种ORM逻辑,并且有Openbiz Appbuilder作为图形化集成开发环境的快速开发平台。  PRADO Component-based Framework  PRADO是在PHP5环境下的一个基于事件驱动和基于组件的WEB应用研发框架。PRADO专注于建立一个代码重用和事件驱动的编程标准。如果你曾经用Delphi或者Visual Basic等这些RAD开发工具来开发Windows程序的话,那么你会发现使用PRADO来开发WEB应用是非常类似的,你可以很快就掌握PRADO来进行WEB应用的开发。  QPHP (Quick PHP) Framework  QuickPHP是用于测试和调试PHP脚本的独立Web服务器。QuickPHP不需要安装(只解压并运行),已包括PHP5,可以用来测试基本的PHP脚本。该QuickPHP服务器支持GET,POST和HEAD请求,并提供最低配置选项,只需选择你的PHP脚本的根目录,然后可以在浏览器中访问了。  Seagull PHP Framework  Seagull是个纯OOP(面向对象程序设计)框架,可用于创建web,command line(命令行)和GUI的应用程序。它采用了BSD授权,让PHP开发者可以更容易地整合并管理代码源,更快速地建立复杂的应用程序。
2023-08-18 11:24:531

如何退出rails console

打开Rails的命令行,到应用的根目录,执行rails console启动。注意,要到Rails应用的根目录,我的是E:greensoftRailsInstallerSitessimple_cms>E:greensoftRailsInstallerSitessimple_cms>rails consoleLoading development environment (Rails 3.2.1)irb(main):001:0>回显的第一行提示了启动加载了Rails开发环境,之后显示的与irb没什么两样。接下来的操作其实就是普通的irb操作,只不过现在的这个irb,是能够访问当前rails应用的。先来几个普通的irb操作E:greensoftRailsInstallerSitessimple_cms>rails consoleLoading development environment (Rails 3.2.1)irb(main):001:0> 1+2=> 3irb(main):002:0> "abbuggy".upcase=> "ABBUGGY"irb(main):003:0>接下来,操作一下我们自定义的模型Subject。创建一个Subject的实例subject1,再把它保存到数据库中。irb(main):001:0> subject1=Subject.new=> #<Subject id: nil, created_at: nil, updated_at: nil>irb(main):002:0> subject1.save [1m[36m (0.0ms)[0m [1mBEGIN[0m [1m[35mSQL (16.0ms)[0m INSERT INTO `subjects` (`created_at`, `updated_at`) VALUES ("2012-09-03 16:31:39", "2012-09-03 16:31:39") [1m[36m (27.0ms)[0m [1mCOMMIT[0m=> trueirb(main):003:0>使用的new,save操作都是继承自ActiveRecord的,后面会详细了解这里只要知道是在创建和保存对象就ok。你看,通过rails console短短几行代码就可以进行模型与数据库的交互操作,如果你需要向数据库中插入一批实验数据,这回很有帮助。注意刚才进入rails console时候的回显Loading development environment (Rails 3.2.1),系统提示我们进入的是开发环境,这是缺省值。如果你希望进入其他的环境只需要在rails console后面跟上其他环境的名字。如rails consle production,不过当尝试进入已经上线运行的production环境是可得多加小心,不要把数据弄坏了。
2023-08-18 11:25:011

求助,安装 rails 失败 · Ruby China

这种直接google吧. 简单提示下,编写/etc/.bash_profile 或 ~/.bashrc 具体$PATH根据你ruby的安装目录来定的.
2023-08-18 11:25:101

如何判断 ruby rails 安装成功

终端输入以下两个命令即可:ruby -v rails -v 如果出现相应的版本信息,就表示安装成功了
2023-08-18 11:25:183

如何在windows上安装ruby on rails

一、下载并安装RubyWindows下安装Ruby最好选择 RubyInstaller(一键安装包)。 我们这里下载目前较新的rubyinstaller-1.9.3-p0.exe 一键安装包。这个安装包除了包含ruby本身,还有许多有用的扩展(比如gems)和 帮助文档。双击安装,安装过程出现如下界面。这里我们选择安装路径为 D:Ruby。 下面有3个选项分别是:(1) 是否安装tclTk支持。(2) 添加ruby命令路径到系统环境变量PATH。(3)是否将 .rb 和.rbw 文件关联到Ruby。 这里我们全部打勾。点击“Install” 安装完毕。打开CMD窗口,运行 ruby -v 显示ruby当前版本号。你也可以输入 ruby -e "puts "hello world" ",则显示 hello world。也可以打开记事本写一段代码如: puts "hello world",保存为 test.rb,然后在CMD中 运行 ruby test.rb 则显示结果 hello world。我想你不甘心就用记事本来写程序吧,这里推荐一款轻巧的代码编辑器SciTE,支持多种语法高亮显示及高亮导出,且免费开源。以前的RubyInstaller 自带SciTE,而新版需要自己下载。官方地址:scintilla.org windows下有绿色版和安装版,安装版下载 点这里。安装SciTE后,打开它,我们输入代码 puts "hello world" ,点击菜单=>file=>save 保存文件为test.rb。 然后按键盘F5,右侧输出窗口出现结果。二、下载并安装RubyGemsRubyGems是一个方便而强大的Ruby程序包管理器,类似RedHat的RPM。它将一个Ruby应用程序打包到一个gem里,作为一个安装单元。 特点:能远程安装包,包之间依赖关系的管理,简单可靠的卸载,查询机制,能查询本地和远程服务器的包信息,能保持一个包的不同版本,基于Web的查看接口,能查看你安装的gem的信息。从官方下载RubyGems,以zip版本为例,解开压缩包,从CMD提示窗口下进入setup.rb所在目录, 运行 ruby setup.rb 即可安装。较新的Ruby版本已经包含RubyGems了,因此我们不用手动下载安装了。只需在CMD窗口输入指令:gem update --system ,耐心等待一段时间,已有的RubyGems会更新到目前最新的版本。三、下载并安装Rails从CMD提示窗口输入指令:gem install rails 开始安装rails。如不想安装文档文件,可以输入:gem install rails --no-rdoc --no-ri 程序自动下载并安装rails, 耐心等待。安装完成后,你可以在路径 D:Rubylib ubygems1.9.1gems 看到些东西,都是rails的包文件,与ruby安装在同一目录下。这时在CMD提示窗口输入指令: rails -v 显示rails的版本号。如图:四、下载并安装DevKitDevKit 是windows平台下编译和使用本地C/C++扩展包的工具。它就是用来模拟Linux平台下的make, gcc, sh来进行编译。这个方法目前仅支持通过RubyInstaller安装的Ruby。下载Devkit:http://rubyinstaller.org/downloads如果上面的地址打不开,就从这里下载:https://github.com/oneclick/rubyinstaller/downloads/我们这里使用目前较新的版本 DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe安装步骤:1) 将下载 DevKit 解压到 D:DevKit 目录。2) 打开 CMD 窗口,进入 D:DevKit 目录,输入ruby dk.rb init 。#生成config.yml,这里会检查将要添加DevKit支持的Ruby列表,只支持通过RubyInstaller安装的Ruby。3) 输入 ruby dk.rb install #开始安装。4) 输入 ruby dk.rb review #检查要添加DevKit支持的Ruby列表是否有误,可以略过。5) 输入 gem install rdiscount --platform=ruby 。#这一步只是验证DevKit是否安装成功,如果能安装rdiscount成功说明安装DevKit成功,也可以不做。 整个过程如图: 五、创建一个Rails项目打开CMD提示窗口,进入D盘,输入指令:rails new www ,会在D盘创建名称为www 的rails项目结构。接着进入www目录,输入指令:rails server ,启动rails自带的 webrick 服务器。 打开浏览器输入地址 http://localhost:3000/ 看到欢迎页面,下来我们让Rails说 "Hello"Rails是一个MVC框架,Rails接收来自浏览器的请求,对请求进行解读以找到合适的控制器,再调用控制器中合适的方法。然后,控制调用合适的视图,把结果显示给用户。Rails提供了快速创建视图和控制的方法,打开CMD命令窗口。进入到刚才的www项目目录,输入命令:rails generate controller say hello 下面我打开上图中提示的视图文件,路径是 /项目目录/app/views/say/hello.html.erb修改为如下形式:复制代码 代码如下: <h1>Say#hello</h1> <p>现在时间是:<%=@time%></p> 注意:将视图文件 hello.html.erb 另存为UTF-8编码格式,否则中文会出现乱码。说明一下是UTF-8编码,而不是 UTF-8 +BOM 编码,BOM 是通过文件开头添加几个字符表示文件编码的标准。但是只有微软用了,x-nix 、PHP、Ruby 不认。接着打开控制器文件,路径是 /项目目录/app/controllers/say_controller.rb修改为复制代码 代码如下: class SayController < ApplicationController def hello @time=Time.now end end打开浏览器访问:http://localhost:3000/say/hello。如果要更改首页,让首页显示Hello。只需2步:1) 找到 /项目目录/config/route.rb 文件,查找到这行 # root :to => "welcome#index" 去掉注释并设置为自己的控制器,修改为 : root :to => "say#hello"2) 删除 /项目目录/public/index.html 文件,因为rails优先读取public目录下的静态文件。再次访问:http://localhost:3000,首页显示Say#Hello,于上图的内容一致。六 创建一个使用MySQL数据库的Rails项目1) 打开CMD窗口,进入D盘,输入命令:rails new work --database Mysql,在D盘创建名称为 work 的rails 项目结构。2) 必须将libmysql.dll库拷贝到 Ruby安装目录的Bin目录下(D:RubyBin)。否则在启动服务器时候会提示:“没有找到LIBMYSQL.dll,因此这个应用程序未能启动。重新安装应用程序可能会修复此问题。” 下载地址:http://www.mysql.com/downloads/connector/c/ 我们这里下载 mysql-connector-c-noinstall-6.0.2-win32.zip ,解压缩,在lib目录里面的libmysql.dll 就是我们要找的。3) 修改数据库的配置信息。在 /项目目录/config/database.yml 文件中,分别对应 “开发”、“测试”,“生产” 数据库的配置,把他们修改为自己的配置。 其中development是我们开发中要实际使用的数据库。一定要注意在username: 和 password: 后面至少要保留一个空格。4) 在CMD窗口输入rake db:craete 命令,会在msyql 中创建由配置信息中所设置的数据库。5) 我们用scaffold来生成代码,在CMD中输入下面指令: rails generate scaffold post title:string body:string addTime:datetime 这时候会创建controller, views, models和数据库脚本,但此时还没有创建表。 再输入:rake db:migrate 创建表。完成。6) 执行命令 rails server
2023-08-18 11:25:271

如何快速学习 Ruby on Rails

快速学习Ruby on Rails,这应该是个伪命题,没有什么事情是能够快速学习的,尤其是编程,而且是Rails这样极其复杂的框架,它由无数顶级高手成年累月的心血堆砌而成,融合了web开发领域内几乎全部的最佳实践。如果想快速入门,那么其他一些人提过的 Rails Tutorial,或者 Rails for Zombies 都是很好的选择,但相信我,即便你能快速做出简单的网站,依旧会对整个开发环境和知识体系一头雾水,在面临现实世界的需求时往往会捉襟见肘,花费更多的时间来补充缺失的知识。所以,我认为如果你的目的不是创业,而是学习的话,全面有效成体系地吸收知识是更好的选择,这方面,读书是最好的方式,不过市场上滥竽充数的书籍实在很多,对于新手来说,怎样用有限的时间读最合适的书,是很重要的。我在学习和使用Ruby与Rails的过程中,读过大部分在Amazon排名靠前的相关书籍,当然有些不错的书,随着技术的进化,已经略显陈旧。以下给出的阅读列表,是在现在依然有效的选择:起点阶段,强烈建议至少具备如下知识后再开始Rails开发Html and CSS结构和样式不止是设计人员的事,web开发必须要熟悉Head First HTML与CSS(第2版)虽然已经出版了很久,但依然是最好的Html&CSS入门书Linux几乎所有的开发环境都严重依赖于GNU/Linux为主的命令行环境,因此需要学习linux的基本概念和操作The Linux Command Line 目前最好的linux command line学习指南,生动,清晰,详细,无论是菜鸟还是多年的老手都能从中受益,远超过之前作为标准教材的practical guide to xx系列。No starch这个出版社既有延续至今的Hacker精神,也懂得如何发掘有趣的作者HTTP and RestWeb开发对于Http的深入理解是必须的,另外Rails还使用Rest协议作为基本指导原则,所以需要深入理解Http和RestRESTful Web Services中文版 这本是目前为止最好的描述HTTP与Rest的作品,可以让你重新认识Web,更何况其中的示例是Ruby语言(因为这本书合著者是Sam Ruby)Programming程序员修炼之道 这本书告诉你,如何做才能成为一个注重实效的程序员,涉及了非常多的理念和实践,虽然都不深入,但至少让你知道世界是什么样子的,是任何程序员最应该在新手阶段读的书,也是对整个业界影响最大的经典之一Git and Version Control版本控制在项目中是一开始就要使用的,不止是开发,一切事情都需要版本控制Pro Git 这本是迄今为止讲解Git最清楚最深入的书,对于新手,不建议看后面的实现原理,先读前几章了解概念和学习日常实践使用是最重要的Ruby如果只是在Rails中使用的Ruby,可以使用一些免费的快速入门教程,不过,系统地学习Ruby,可以了解到很多面向对象开发或函数式编程的思想,对于熟悉和掌握Rails帮助非常大Programming Ruby 1.9 公认的Ruby入门经典,不过对于新手来说,只推荐前半的入门部分,高阶内容可以稍后再来学习RailsLearn Web Development with the Ruby on Rails Tutorial最后是Rails自身的学习,这本书的最新版涵盖Rails4,是目前为止最好最完整的Rails入门教程,可以在线看,还有大量的视频搭配进阶阶段,具备下面的知识,可以让你或多或少地理解Rails Way,并真正开始写出合格的Rails应用Programming重构这本"重构"是当年石破天惊的经典著作,讲解如何持续改进和让代码优雅干净,拥有直到现在还依然适用的价值,尤其为Ruby On Rails社区广泛接受,这本书有将其中的Java语言换成Ruby后的[版本](重构(Ruby版) (豆瓣))UNIX编程艺术由公认的黑客领袖之一Eric S.Raymond撰写的这本书总结了长久以来的Unix领域中的设计和开发哲学,思想乃至文化体系,是了解Ruby和Rails诞生于其中的Unix黑客文化必不可少的读物Ruby深入理解Ruby,除了上边提到的Programming Ruby 1.9以及重构等通用编程书之外,还有以下几个选择Ruby编程语言Ruby之父松本行弘和O"Reilly的王牌作者合作,诞生了这本讲解Ruby最透彻的经典著作Eloquent RubyRuby社区的编程指南之一,介绍了Ruby社群的文化,品味和编程原则,强烈地反映了Ruby程序员的共同特质: 幽默,健谈,追求乐趣,热爱生活Test测试驱动开发(TDD)以及之后进化的行为驱动开发(BDD)是Ruby和Rails社群的核心文化之一,只有彻底理解并运用BDD,才是合格的Rails开发者The RSpec Book 唯一的也是必读的BDD介绍作品,由RSpec核心成员撰写Git可以坚持把Pro Git的后半部分学习完,没有更深入和清楚的书了CSSCSS权威指南 Eric Meyer的CSS权威指南至今仍然是CSS2讲解最全面和最深入的参考书Javascript and jQueryWeb开发的交互性会越来越多,Javascript已经成为了相当严肃的编程语言JavaScript权威指南 目前最全面最好的Javascript学习书籍jQuery基础教程 (第4版) 唯一尚可称得上紧跟jQuery发展脚步的学习指南RailsRails发展的实在太快了,最好的方法也许是跟踪在线文档,不过还是推荐这本The Rails 4 Way 这本书的Rails 3版本讲解Rails的哲学和细节相当到位,不过Rails 4版本还没有出版,非常值得在今年3月份第一时间拿下它。---More上边的书籍都读过的话,可能你终于能了解到Rails背后涉及的概念和实践有多么庞大惊人,也了解到了还有多么深的知识鸿沟需要跨越,了解到了一切都还只是开始,不过值得庆幸的是,一切事情都需要个开始
2023-08-18 11:25:421

rails 通过session id储存内容,现在要用id读取内容怎么读取阿

去去去去去去去去去去去去去去去去去去去去去去去去去去去轻轻
2023-08-18 11:25:502

ruby on rails怎么使用redis

对于在Rails上使用Redis Store,首先我们需要在Gemfile文件中添加入口gem "redis-rails"gem "redis-rack-cache" # optional然后我们就会有如下选择: ## Cache Store# config/environments/production.rbconfig.cache_store = :redis_store## Session Store# config/initializers/session_store.rbMyApplication::Application.config.session_store :redis_store,servers: ["redis://:secret@192.168.6.23:6379/0", "redis://:secret@192.168.6.99:6379/1"]## HTTP Cache# config.rurequire "rack"require "rack/cache"require "redis-rack-cache"use Rack::Cache,metastore: "redis://localhost:6379/0/metastore",entitystore: "redis://localhost:6380/0/entitystore"如你所见,使用这个插件相当简单,但现在我要教你如何去管理这些设置。第一个案例不言自明,我们来说说用 ActiveSupport 来加载Redis Store。这里请记住,Redis的contraire仅仅只能支持字符串,所以可以利用序列化与反序列化技术来存储任何对象。这里的第二个案例就稍微复杂一点。首先,我们需要使用一个服务器集群。这里再重复一遍,Redis Store支持分片,也就意味着Http会话在两台服务器之间都是互相透明可见的。最后一个案例主要涉及到Ruby的Http缓存代理,这些缓存的主要作用就是为了加快Http响应,而且也是以名值对的方式来存储meta数据以及entity实体对象的,这里也提一下,如果我们存储的都是普通的字符串文本,那么 mashalling模块也是不需要启动的。虽然说了这么多,但就上面几点也只是 Redis store 所有功能的一小部分而已,其实它还支持Rack,Sinatra以及I18n。总结我个人认为 Redis 基本算是你的服务器环境必须用用的一个插件,它速度快而且可使用范围广泛,比如可以作为数据库,缓存,分片机等等,真算得上是一个不错的工具。然而任何好处都是有代价的:与Rails一样,为了使用它,你必须花费大量的时间与安装与配置才能在性能,以及内存使用上找到一个绝佳的平衡点。您可能感兴趣的文章:
2023-08-18 11:26:101

在Linux平台上安装和配置Ruby on Rails ERROR: While executing gem ... (Gem::RemoteSourceException) HT

你可能要更新下rubygems gem update --system 或者$ gem install rubygems-update $ update_rubygems 可能需要sudo
2023-08-18 11:26:182

ruby on rails中sidekiq的使用

sidekiq使用redis来保存所有的job和操作数据,所以sidekiq依赖于redis,并且sidekiq默认会去连位于localhost:6379的redis服务器,但是生产环境中可能需要自定义地址 前提:安装并启动redis,不同机器对应的安装方式可自行百度,mac下安装redis可通过 配置sidekiq所依赖的redis位置,必须同时定义sidekiq的server和client config/initializers/sidekiq.rb 如果要使用 UNIX socket,URL 应该类似于 unix://#{Rails.root}/tmp/sockets/redis.sock 配置config/sidekiq.yml文件,一般只有在需要配置高级选项的时候才需要配置这个文件(如果不使用这个名字,可以使用-c指定 sidekiq -c config/name.yml) 文件中会生成如下内容 将耗时的程序写到perform里 注意:perform是一个实例方法,但是在调用的时候是用类调用 adapter默认使用的adapter是Active Job Inline需要指定为sidekiq才支持异步(如果是使用worker这一步可以省略) 另外由于sidekiq的进程并不是非常稳定,可定会自己断掉,所以可以配合监控工具Monit(可以监控任何进程,只需要设定启动和重开的方式即可)使用,详情还请自行百度 gemfile添加sinatra 执行 tips: 之前直接添加 gem "sinatra" 运行时导致报错,google之后判断可能是由于sinatra gem的版本问题,导致运行时报错,修正后的sinatra gem 的为 gem "sinatra", "2.0.0.beta2",require: false routes.rb添加 打开Sidekiq web界面,检查该作业是否被处理,浏览器中输入 (以下纯属翻译) 注:本文讲的是Sidekiq结合ActiveJob使用的方式,也可以单独使用Sidekiq Worker 文章中注释掉的是单独使用Sidekiq Worker创建任务跟使用ActiveJob的不同部分 参考 https://github.com/mperham/sidekiq/wiki/Getting-Started (worker) https://ihower.tw/rails/background-process.html (active_job)
2023-08-18 11:26:251

使用Puma部署Rails项目

Puma是一个基于Ruby的Web Server服务器,与其他Ruby Web服务器不同的是,Puma是为速度与并发而生的。它和Unicorn的很大不同是,Puma主要基于多线程,而Unicorn是基于多进程,所以Puma的内存占用要比Unicorn小很多。(当然基于多线程最大的问题就是线程安全的问题,这个在Ruby1.9之后已经逐步得到比较完美的解决了,Ruby1.8就别指望跑Puma了。) 下面是Puma的官方给出的数据,内存占用占据明显优势,而速度方面也是独占鳌头,所以Puma在部署中越来越流行了。 和unicorn一样,使用Puma之前先在Gemfile中添加: 之后添加配置文件config/puma.rb 关于所有的配置参数,可以在 https://github.com/puma/puma/blob/master/examples/config.rb 里面了解。 https://ruby-china.org/topics/10832 https://ruby-china.org/topics/15140
2023-08-18 11:26:331

rails 页面的跳转方式有几种

方法一:使用meta标签 meta标签是html不可或缺的标签之一,它负责提供文档的元信息,其参数主要有: ① http-equiv: 与 文档中数据相关的HTTP文件首部 ② content: 与命名HTTP首部相关的数据 ③ name: 文档描述 ④ url: 与元信息相联系的URL 当我们定义属性http-equiv为refresh,打开此Web页时系统将根据content规定的值在一定时间内跳转到相应页面,content="秒数;url=网址"就是定义了过多长时间跳转到指定的网址。以下meta标签告诉系统一秒钟后页面自动跳转:<meta http-equiv="refresh" content="1;url=http://www.yourdomain.com"> 以上代码需要加在HTTP文档首部中,介于<head>与</head>之间,通常,meta标签是紧跟在<head>之后。若需要有多个meta标签,它们可以各占一行。 此法通用于任何环境,包含静态的网站空间。 方法二:使用header函数 header函数是php内置函数中的HTTP相关函数之一,该函数送出HTTP协议标头到浏览器。使用它可以重定向URL,即令页面转向其他指定的网页。以下例子,执行后将自动打开黑马在线动力首页: header("Location: http://www.gxblk.com/"); 必须注意,header函数只能用在页面代码中的<html>标签之前,亦即,HTTP首部尚未有其他任何标头(<head>)传送给浏览器之前,而且,此前页面也不能print或echo任何内容。换句话说,在页面的<html>出现前,程序只单纯地处理header事件。尽管有如此严格的要求,灵活地使用它,仍然可以达成页面的自动跳转功能,比如登录页面,通过判断用户提交的数据是否合法来决定页面跳转到何处。以下给出一个简单的例子: <?php /* 登录程序 - 文件名:login.php 程序作用 - 判断用户登录口令 */ if($_POST["Submit"]) { session_start(); if($_POST["pws"]=="123") { //若密码为 123 $_SESSION["passwd"]="123"; //写入会话数据 header("Location:index.php"); //跳转到正常页面 }else{ header("Location:login.php"); //跳转到登录页面 } } //表单代码略(也可以用纯html代码写表单,若如此,代码应放在程序之后 ?> <?php /* 检测会话数据 - 文件名:index.php 程序作用 - 检测会话数据中的密码是否为123,若不是,返回登录页面 */ session_start(); if($_SESSION["passwd"]!="123") header("Location:login.php"); //其他代码(纯HTML代码应写在程序之后) ?> 此法显然只能用于支持php的空间环境。 方法三:使用JavaScript JS非常灵活,利用它可以做出功能非常强大的程序脚本,这里仅举一个简单的页面自动跳转的JS例子。以下代码执行后浏览器将自动转到黑马在线动力网站,该代码可放在页面中的任何合法的位置: <script language="javascript" type="text/javascript"> window.location.href("http://www.yourdomain.com"); </script> 此代码适用于任何Web环境。
2023-08-18 11:26:421

12306@rails.com.cn

春运票难买
2023-08-18 11:27:0615

什么叫全栈框架

Ruby on Rails 是一个相对较新的 Web 应用程序框架,构建在 Ruby 语言之上。它被宣传为现有企业框架的一个替代,而它的目标,简而言之,就是让生活,至少是 Web 开发方面的生活,变得更轻松。在本文中,Aaron Rustad 将对 Rails 和传统的 J2EE 框架在架构上的一些关键特性进行比较。 Ruby on Rails 是一个 Web 应用程序框架,它的目标是为应用程序开发提供一条易行道。实际上,框架的支持者们声称 Ruby on Rails 开发人员的生产率最多是使用传统 J2EE 框架的 10 倍。虽然这句话造成了 Rails 和 J2EE 社区相当大的争议,但争论中却很少谈及如何比较 Rails 和 J2EE 架构。本文将使用企业应用程序中常见的开源工具,对 Rails 框架和典型的 J2EE 实现进行比较。 什么是 Ruby on Rails? Rails 是一个用 Ruby 编写的全栈的(full-stack)、开源的 Web 框架,可以使用它来轻松编写实际的应用程序,所需的代码也要比大多数框架花在处理 XML 上的代码少。 虽然我不能保证框架确实会提供它所承诺的轻松快乐,但是上面这句话确实很好地总结了 Rails 的品质。全栈包括:Web 服务器、处理 HTTP 请求和响应的框架,以及方便地把数据持久存储到关系数据库的框架。Rails 通过消除复杂的 XML 配置文件,使用 Ruby 语言的动态性质,帮助把静态类型语言中常见的许多重复代码减少到最少,努力使开发工作变得更容易。 Rails 和典型的 J2EE Web 堆栈 图 1 比较了 Rails 堆栈和典型的 J2EE Web 堆栈(包括 Tomcat servlet 容器、Struts Web 应用程序框架和 Hibernate 持久性框架)。 可以看到,Rails 堆栈和构成普通的基于 J2EE 的 Web 应用程序的组件之间的基本区别很小。两者都有用来执行应用程序代码的容器;都有帮助分离应用程序的模型、视图和控件的 MVC 框架;以及持久存储数据的机制。 前端控制器 Struts 的 ActionServlet 和 Rails 的 DispatchServlet 都是前端控制器模式的例子;所以,它们提供了相同的功能。它们接受 HTTP 请求,解析 URL,把请求的处理转发给适当的动作。在 Struts 中,动作是扩展自 Action 的类;对于 Rails,动作是扩展自 ActionController 的类。两个前端控制器之间的主要区别是它们如何决定处理具体请求的动作。 使用 Struts,开发人员需要把特定请求的映射外部化到 XML 配置文件中的 Action 类。当首次装入 ActionServlet 时,它将解析这个文件,并准备接受请求。根据约定,以 .do 结束的请求被重定向到 ActionServlet,由 ActionServlet 分派到适当的 Action。图 2 的 XML 是一个典型的映射。它告诉 ActionServlet 把叫作 deleteOrder.do 的请求转发到 controllers.order.DeleteOrderAction 作进一步处理。
2023-08-18 11:27:331

rail怎么读

rail读法:英音 [reu026al]、美音 [rel]。1、rail 基本解释n. 围栏;轨道,钢轨;扶手;[动]秧鸡vi. 责备;抱怨;责骂vt. 将?围起来;铺铁轨;坐火车旅行;用围栏围2、rail 变化形式复数: rails第三人称单数: rails过去式: railed过去分词: railed现在分词: railing3、rail 用法和例句China "s high-speed rail plans have been highly controversial .中国的高速铁路计划已经引起激烈争议。Instead , each rail is operated directly by its own actuator .取而代之的是,每一个轨道都被各自的执行器直接控制。It also supplies london underground with rail lubricant .该公司还为伦敦地铁供应铁轨润滑剂。Others rail at the costs of compliance .另一部分的抱怨却是以服从为代价。A walkie-talkie on the porch rail chirped .一个门廊上轨对讲机啁啾。
2023-08-18 11:28:141

为什么说现在是学习Ruby和Rails的最佳时机

今年在台湾各式各样的 Ruby 以及 Rails 社群活动如雨后春笋一般到处举办,Ruby 以及 Rails 究竟有什麽厉害之处?初学者们又该如何上手呢?什麽是 Ruby?Ruby 是一个源自于日本的程式语言,并且由于 Ruby on Rails 这套便于快速开发网页应用程式的框架而在近年走红,如果你从事网页相关开发工作,我想大概已经听过 Ruby on Rails 这套网页框架,但或许你分不太出来 Ruby 以及 Rails 的差别,以及 Ruby 除了 Rails 之外、还能用来做些什麽?与其他常见的程式语言相比,Ruby 具备了更有弹性的语法,在 Ruby 的哲学当中,通常要完成某个行为不一定只有一种方法,往往会有数种不同的方法让开发者选择。也因为这样的弹性,通常开发者会透过 Ruby 设计「特定领域语言」(Domain Specific Lanauge)来解决问题,有点像是我们平常讲的是中文、但是会透过中文定义一组针对「法律」相关问题的「法律语言」。Ruby on Rails不过当然,Ruby on Rails 还是多数人接触 Ruby 语言的主要原因,同样使用 DSL 的设计概念,Rails 标榜著以下两个设计哲学:1. 惯例大于设定(convention over configuration),在多数的情况下都使用 Rails 预设的设定,而减少手动去指定各项参数2. 不重?(Don"t repeat yourself),尽量减少重?的程式码??贴上到各处,而用比较有架构、组织的方式重用在开发上速度很快,加上 Rails DSL 的语法相当简易,透过Rails Girls 这样的新手教学活动,几乎在一天之内就可以做出简单的网站。也因此很多人甚至常常开玩笑说会写 Rails 不见得会写 Ruby。为什麽现在是入门的好时机?说了这麽多,作为一个长期的社群参与者以及 Ruby 语言的使用者,在今年当中我观察到很多迹象,都显示目前是大家尚未入门要学习的好时机。主要原因有三个:广泛地被大小企业采用以前提到 Ruby 或 Rails 的使用状况往往我们会想到的都是新创或网路公司的例子,但近年来越来越多传统企业在面对网应用路开发需求时,也纷纷选择 Rails 作为主要架构,像是在国内的部分,我们可以发现在社群的求职看板上,包含知名连锁书局、纺织业等等的例子。Ruby 以及 Rails 的效能有很大的进步以往通常 Rails 开发者都会被其他语言的开发者嘲笑在速度上可能不佳,但在近期的改版当中,Ruby 2.1 以及 Rails 4.1 都有很大的效能进步,是有史以来最快的版本。以往被嫌弃在记忆体使用肥大的问题也有具体的改善:社群以及教育资源遍地开花在台湾今年就有以下的活动:两场大型的国际研讨会RubyConf/Rails Pacific不定期举办的Rails Girls以及Rails Outreach Workshop学习课程不定期举办的Ruby Tuesday 分享会每?固定的社群聚会Rails 新手村以及Rails Tuesday而在针对企业方面,也有像五倍红宝石这样的单位专门针对 Rails 及 Ruby 提供企业教育训练的服务。如何开始?线上有很多既有的学习资源,其中我特别推荐Code School,相对于传统的教学而言、他提供了互动式的教学环境,让你可以一边看影片、一边动手试著做做看在网路上有相当多的 Ruby / Rails 中文社团,比如说:Ruby Taiwan、Ruby on Rails 读书会或Ruby on Rails 新手村最后,也可以参考包含Inside Job Board以及Ruby Taiwan Job Board找寻相关的工作机会别再犹豫了,赶快开始学习 Ruby 以及 Rails 吧!
2023-08-18 11:28:362

rails中怎么判断两条数据不能重复

model 里面有validates_uniqueness_of 重复校验
2023-08-18 11:29:081

我用rails起了一个网站,localhost:3000电脑上能打开,但是http://0.0.0.0:3000不能访问,怎么能解决?

用你网站所在电脑的ip不是0.0.0.0
2023-08-18 11:29:332

迁移是什么意思

迁移是离开原来的所在地而另换地点的意思。迁移是指一种学习对另一种学习的影响,指在一种情景中获得的知识、技能或态度对另一种情境中的知识、技能或态度的形成的影响。它不仅包括先前学习对后继学习的影响,也包括后继学习对先前学习的影响,不仅包括一种学习对另一种学习的积极影响,而且也包括一种学习对另一种学习的消极影响。例句:1.妈妈所在的那个工厂由城市迁移到郊区去了。2.由农村到城里去读书可以不迁移户口。3.由于这两个版本之间的种种差异,我们建议您在完成迁移后对映射进行测试。4.我们的学校已经由旧校舍迁移到新校舍。5.他把户口迁移到了南京。6.随着地价上涨,不少工厂由城内迁移到地价较低的远郊区。7.马其顿现在已迁移到东南偏东,并几乎看不见任何东西,因为他们利令智昏初升的太阳。8.请注意,Rails为每篇文章生成了模型对象和迁移。9.那时也没有电邮地址或者可迁移电话号码,而目录查询服务也不过尔尔。
2023-08-18 11:30:381

求冀教版初二英语下册34课Trains Go on Rails!的译文!

译文18世纪,许多发明在蒸汽机.在18世纪60年代,一个英国的科学家发明了一种把蒸汽机和车轮一起.很快,人们有了一种新的交通方式:蒸汽机车.一个英国工程师上驾驶第一辆蒸汽火车一路,但巴格达1804,机车载着大约七个乘客在一段铁轨的短距离.它是第一个铁路!这是第一次在英国.在英国铁路客运开通1825.第一条客运列车被称为“火箭”.在19世纪30年代,世界各国开始修建铁路.五十年后,铁路覆盖了大部分国家.许多火车站建成,方便旅客上下火车.早期的火车,像火箭,有最高时速50公里每小时.即使是最好的蒸汽火车缓慢.他们只会到80公里每小时.今天的火车快多了.他们以每小时240公里.最快的火车每小时能行驶380公里.
2023-08-18 11:30:481

在ubuntu下安装ruby时报错 迷茫!!!

我个人建议还是使用rvm吧,比较方便
2023-08-18 11:31:344

go off the rails什么意思及同义词

出轨双语对照词典结果:go off the rails(非正式)行为不轨; 越轨; 出毛病; 神经错乱; 很高兴为您解答祝你生活愉快,学习进步如果你对这个答案有什么疑问,请追问如果满意记得采纳哦·~~
2023-08-18 11:31:492

反思Spring:由Ruby on Rails想到的[2]

  上面的二段配置文件代码是常用的spring事务管理配置   看完上面的二段代码的配置 和Ruby on Rails没有一行配置的ActiveRecord相比差太远 相对麻烦拖拉 没有办法 暂时spring实现中事务管理主要也只是这两种方法   使用spring通常会与hibernate/ibatis集成作数据访问层 这也是大多java开发人员常用字的技术框架 下面如spring和hibernate结合做数据访问层 暂时不讨论有泛型存在的情况 只是简单举一个例子把事务管理放在数据访问层 下面说出我自己心中理想的spring事务管理   约定高于配置 首先规定 对于query list show get find等开头的方法采用PROPAGATION_REQUIRED readOnly级的事务定义 而对于set save update remove delete等开头的方法采用PROPAGATION_REQUIRED级的事务定义 基本上能满足大部分开发的需要 然后只要在需要事务管理配置的类的前加一句元数据即可 例如spring针对hibernate 开发的@TransactionAop(hibernate ) 类似的有@TransactionAop(hibernate ) @TransactionAop(ibatis) @TransactionAop(jdo)之类元数据的   举一个例子看一段代码 其中UserDAO是一个接口 大家都应该看得出来 只加了一行的元数据@TransactionAop(hibernate )就可以使得这一个UserDAHibernate类有事务管理的功能 因为它命名的方法符合spring的约定 (当然 这不是真的 spring中也没有这一个功能 这只是我个人一点想法提出来而已)   代码 package appfuse dao hibernate; import java util List; import appfuse dao UserDAO; import appfuse model User; import springframework orm hibernate support HibernateDaoSupport; span style= color:blue; > //假设有下面这一个类 import springframework orm hibernate support annotations TransactionAop; </span> <span style= color:blue; >@TransactionAop(hibernate )</span> public class UserDAOHibernate extends HibernateDaoSupport implements UserDAO { public User getUser(Long userId) { return (User)this getHibernateTemplate() get(User class userId); } public List getUsers() { return this getHibernateTemplate() find( from User ); } public void removeUser(Long userId) { Object user = this getHibernateTemplate() load(User class userId); this getHibernateTemplate() delete(user); } public void saveUser(User user) { this getHibernateTemplate() saveOrUpdate(user); } }   spring的事务定义很灵活很广 定义七种的传播行为和五种的隔离常量 但用得比较多还是PROPAGATION_REQUIRED和PROPAGATION_REQUIRED readOnly 所以我提出上面所述的一点假想 可以简便开发   简单就是美 lishixinzhi/Article/program/Java/ky/201311/29082
2023-08-18 11:31:571

请教图纸上Voltage Rails是什么意思?

首先,这不是“限压”的意思。在这里,Voltage Rails,就是用来说明各路电压的性质、作用,以及在各种状态下的电位状态。但是,找不到合适的词来翻译。
2023-08-18 11:32:061

rails-to-trails什么意思

rails-to-trails轨迹
2023-08-18 11:32:141

ruby on rails 怎么设断点

require "ruby-debug"在需要的地方插入breakpoint
2023-08-18 11:32:592

关于Ruby On Rails 页面跳转的问题

请试一下:<% if @url %>window.location.href="@url"<% else %><div>你没有给@url赋值!</div><% end %>
2023-08-18 11:33:073

我在学习ruby on rails是遇到下面这个错误提示,网高手能解答这个一般性是什么错,不胜感谢。

我也出现这样的问题,而且先好好的,没做什么改变,突然就这样子了
2023-08-18 11:33:154

收到了12306@rails.com.cn的订单信息 是诈骗吗?

你买了车票后发的,信息能跟你买的核对上就是真的,或者看有没有别人用你的账号如果没有购买车票那肯定是假的
2023-08-18 11:33:261

12306@rails.com.cn这是怎么回事

可能是有人用你的账号办的!
2023-08-18 11:33:352

12306@rails.com.cn是铁道部的邮箱吗?

中国铁路客户服务中心意见反馈邮箱
2023-08-18 11:33:445

求翻译 考研英语

不好意思,我也好想知道正确答案
2023-08-18 11:35:365

开源数据库Sharding技术[2]

   Sharding 策略   数据 Sharding 的策略与分区表的方式有很多类似的地方 有基于表 ID 范围 数据产生的时间或是SOA理念下的基于服务等众多方式 可选择 而与传统的表分区方式不同的是 Sharding 策略和业务结合的更为紧密 成功的 Sharding 必须对自己的业务足够熟悉 进行众多可行性分析的基础上进行 业务逻辑驱动    Sharding 实现案例分析 Digg 网站   作为风头正劲的 Web 网站之一的 Digg 虽然用户群庞大 但网站数据库数据并非海量 去年同期主数据大约只有 GB 的样子 现在应该更大一些 但应该不会出现数量级上增长 数据库软件采用 MySQL x Digg 的 IO 压力非常大 而且是读集中的应用( %的 IO 是读请求) 因为提供的是新闻类服务 这类数据有其自身特点 最近时间段的数据往往是读压力最大的部分   根据业务特点 Digg 根据时间范围对主要的业务数据做 Sharding 把不到 % 的 热 数据有效隔离开来 同时对这部分数据用以更好的硬件 提供更好的用户体验 而另外 % 的数据因用户很少访问 所以尽管访问速度稍慢一点 对用户来说 影响也很小 通过 Sharding Digg 达到了预期效果    现有的Sharding 软件简介   现在 Sharding 相关的软件实现其实不少 基于数据库层 DAO 层 不同语言下也都不乏案例 限于篇幅 作一下简要的介绍   MySQL Proxy + HSCALE   一套比较有潜力的方案 其中 MySQL Proxy (//fe mysql /wiki/MySQL_Proxy) 是用 Lua 脚本实现的 介于客户端与服务器端之间 扮演 Proxy 的角色 提供查询分析 失败接管 查询过滤 调整等功能 目前的 版本还做不到读 写分离 HSCALE 则是针对 MySQL Proxy 插件 也是用 Lua 实现的 对 Sharding 过程简化了许多 需要指出的是 MySQL Proxy 与 HSCALE 各自会带来一定的开销 但这个开销与集中式数据处理方式单条查询的开销还是要小的   Hibernate Shards   这是 Google 技术团队贡献的项目(// hibernate / ) 该项目是在对 Google 财务系统数据 Sharding 过程中诞生的 因为是在框架层实现的 所以有其独特的特性 标准的 Hibernate 编程模型 会用 Hibernate 就能搞定 技术成本较低 相对弹性的 Sharding 策略以及支持虚拟 Shard 等   Spock Proxy   这也是在实际需求中产生的一个开源项目 Spock(// spock /)是一个人员查找的 Web 网站 通过对自己的单一 DB 进行有效 Sharding化 而产生了Spock Proxy(//spockproxy sourcefe net/ ) 项目 Spock Proxy 算得上 MySQL Proxy 的一个分支 提供基于范围的 Sharding 机制 Spock 是基于 Rails 的 所以Spock Proxy 也是基于 Rails 构建 关注 RoR 的朋友不应错过这个项目   HiveDB   上面介绍了 RoR 的实现 HiveDB (// hivedb /)则是基于Java 的实现 另外 稍有不同的是 这个项目背后有商业公司支持   PL/Proxy   前面几个都是针对 MySQL 的 Sharding 方案 PL/Proxy 则是针对 PostgreSQL 的 设计思想类似 Teradata 的 Hash 机制 数据存储对客户端是透明的 客户请求发送到 PL/Proxy 后 由这里分布式存储过程调用 统一分发 PL/Proxy 的设计初衷就是在这一层充当 数据总线 的职责 所以 当数据吞吐量支撑不住的时候 只需要增加更多的 PL/Proxy 服务器即可 大名鼎鼎的 Skype 用的就是 PL/Proxy 的解决方案 lishixinzhi/Article/program/SQL/201311/16327
2023-08-18 11:35:521

There are all kinds of trains in the world.There

2023-08-18 11:36:014

on rail造句 on railの例文 "on rail"是什么意思

Trains run on rails . 火车在轨道上行驶。 They were placed by a derrick mounted on rails on the bridge deck . 它们由轨道上的转臂吊机吊放在桥面上。 If you ve written off ruby on rails because you 如果您放弃了ruby on rails ,因为您 Man , this baby must corner pke it " s on rails 老兄,这宝贝转弯时像是有轨道! Report of the bills mittee on rail merger bill 两铁合并条例草案委员会报告 Electrical and electronic control apparatus on rail vehicles 铁道车辆上电气和电子控制装置 These prices are for ( free on rail ) prices 此为for (车上交货)价格。 First , this is not an article about ruby on rails 首先,这不是一篇关于ruby on rails的文章。 Electronic equipment used on rail vehicles 铁路车辆用电子设备 Bills mittee on rail merger bill 两铁合并条例草案委员会 It"s difficult to see on rail in a sentence. 用 on rail 造句挺难的 Standard for electrical and electronic control apparatus on rail vehicles 轨道车辆的电气和电子控制器具标准 Trains run on rails 火车在轨道上行驶 In may 1999 , we launched another reefer - on rail from chengdu to shanghai 1999年5月又推出了成都到上海的冷冻集装箱专列火车服务。 By far , the easiest way to use active record is through ruby on rails 目前为止,使用活动记录最简单的方式还是通过ruby on rails 。 The ruby on rails solution for deapng with changes to a production database 正是ruby on rails处理对生产数据库进行修改的解决方案。 He first explores active record , the persistence engine behind ruby on rails 他首先研究活动记录,这是ruby on rails背后的持久性引擎。 We have firsthand descriptions of biological weapons factories on wheels and on rails 目击者描述说,他们看到过建立在汽车和火车上的生物武器工厂。 In ruby , it provides the explosive power behind the growth of the ruby on rails framework 在ruby on rails框架成长的背后, ruby提供了爆炸性的力量。 Ruby on rails is effective for web - based user interfaces on a big relational database 对于大型关系数据库上的基于web的用户界面, ruby on rails是有效的。 Ruby on rails is a relatively new web apppcation framework built on the ruby language Ruby on rails是一个相对较新的web应用程序框架,构建在ruby语言之上。 Brake block holders and brake block keys for posite brake blocks on rail vehicles ; technical specifications 有轨车辆的复合制动装置的制动块夹持器和制动块键.技 Read the article titled " rolpng with ruby on rails " for more on this claim ; see (请阅读“ rolpng with ruby on rails ”一文,以获得关于这一声明的更多内容;请参阅 The number of plaints and suggestions on rail services decreased from 92 in the previous quarter to 68 in this quarter 涉及铁路服务的投诉及建议由上季的92宗降至今季的68宗。 The number of plaints and suggestions on rail services increased from 88 in the previous quarter to 100 in this quarter 涉及铁路服务的投诉及建议由上季的88宗增至今季的100宗。 In december 1998 , we launched our reefer - on rail service from xian to qingdao , the first of its kind in china 1998年12月,我们推出了从西安到青岛的中国首列冷冻集装箱专列火车服务。 Ruby on rails is a web apppcation framework that aims to provide an easy path to apppcation development Ruby on rails是一个web应用程序框架,它的目标是为应用程序开发提供一条易行道。 Then , we ll explore frameworks pke ruby on rails that provide excellent productivity for certain types of problems 然后,我们将探讨为特定类型的问题提供极好的生产率的框架,比如ruby on rails 。 Functioning of and interfaces among propulsion , friction brake , and train - borne master control on rail rapid transit vehicles 在推动装置,摩擦闸和铁路快速运输车辆的火车上主控装置之间的接口和功能 For and fot mean : " free on rail " and " free on truck " . these terms are synonymous , since the word " truck " relates to the railway wagons For和fot系指铁路交货,两者是同义的,因“敞车”系指铁路敞车。 Functioning of and interfaces among propulsion , friction brake and train - borne master control on rail rapid transit vehicles 在推进装置摩擦闸和轨道快速运输车辆上的车载主控装置之间的接口和具备的功能 It"s difficult to see on rail in a sentence. 用 on rail 造句挺难的 You need only look across the street at those vociferous ruby on rails gurus to know why that platform is so exciting 只要看看马路对面那些喧嚷的ruby on rails老手们就会知道这种平台是多么的令人激动。 Ruby on rails is just one facet of what makes ruby great , just pke ejb is only part of the java enterprise platform Ruby on rails只是使ruby非常强大的方面之一,就像ejb只是java企业平台的一部分一样。 But kind the that situation appear getting less in chance , so can have chosen not relying mainly on rail transportation i on and off duty 但之种情况出现的机会比较少,所以我上下班还是会选择以轨道交通为主。 Cases related to taxi services decreased from 4 , 785 in 2002 to 4 , 670 in 2003 . plaints and suggestions on rail services decreased from 329 in 2002 to 280 in 2003 涉及铁路服务的投诉及建议由二二年的329宗减至二三年的280宗。 On rail security , still cited by lawmakers as the most vulnerable part of the transportation system , $ 13 . 2 milpon goes for inspectors and explosive detection 在铁路安全上,仍然被作为交通系统最脆弱的一个部分, 132亿美元用于调查人员和爆破物侦测。 Dimension of low - voltage switchgear and controlgear - standardized mounting on rails for mechanical support of electrical devices in switchgear and controlgear installations 低压开关设备和控制设备的尺寸在成套开关设备和控制设备中作电器机械支承的标准安装轨 In fact , the framework s proponents claim that ruby on rails developers can be up to ten times more productive than they would be when using traditional j2ee frameworks 实际上,框架的支持者们声称ruby on rails开发人员的生产率最多是使用传统j2ee框架的10倍。 On rail security , still cited by lawmakers as the most vulnerable part of the transportation system , $ 13 . 2 milpon goes for inspectors and explosive detection 铁路安全方面,仍是立法者认为运输体系中最薄弱环节, 1320万将用于加派监测员人手和加强爆炸物的探测。 Dimensions of low - voltage switchgear and controlgear . standardized mounting on rails for mechanical support of electrical devices in switchgear and controlgear installations 低压开关设备和控制设备的尺寸.开关设备和控制设备中电气器件的机械支承用轨道上的标准化安装 Dimensions of low - voltage switchgear and controlgear - standardized mounting on rails for mechanical support of electrical devices in switchgear and controlgear installations 低压开关设备和控制设备尺寸.开关设备和控制设备中电气器件的机械支承件在轨道上的标准化安装 Dimensions of low voltage schwitchgear and controlgear - standardized mounting on rails for mechanical support of electrical devices in schwitchgear and controlgear installations 低压开关设备和控制装置尺寸.开关设备和控制装置中电气设备的机械支架用护栏的标准化安装 On rail security , still cited by lawmakers as the most vulnerable part of the transportation system , $ 13 . 2 milpon goes for inspectors and explosive detection 而铁路安全方面,依然被立法者称为运输体系中最易受攻击的部分,将有一千三百二十万用于加派巡视员和对爆炸物的检测。 On rail security , still cited by lawmakers as the most vulnerable part of the transportation system , $ 13 . 2 milpon goes for inspectors and explosive detection 铁路安全方面,依然是立法者口中的“交通体系中最脆弱”的一部分,为此,将有1320万用于加派巡察员和对爆炸物的检测。 A third source , also in a position to know , reported in summer 2002 that iraq had manufactured mobile production systems mounted on road trailer units and on rail cars 还有一位消息人士于2002年夏天报告,伊拉克已经制造出安装于公路拖车和火车车厢上的可移动生物制剂生产系统。 On rail security , still cited by lawmakers as the most vulnerable part of the transportation system , 13 . 2 milpon dollars goes for inspectors and explosive detection 在铁路安全方面,立法者将其称为交通运输最易受攻击的部分, 1320万美圆将用于增设检查人员及对易爆物品的检查。 Dimensions of low - voltage switchgear and controlgear - standardized mounting on rails for mechanical support of electrical devices in switchgear and controlgear installations ; amendment 1 低压开关设备和控制设备的尺寸.开关设备和控制设备中电气器件的机械支承用轨道上的标准化安装.修改件1 In this article , the first in a series that aims to demonstrate these ideas , you ll look at active record , the persistence architecture at the heart of ruby on rails 在演示这些理念的系列的第一篇文章,也就是这篇文章中,将讨论活动记录( active record ) ,它是位于ruby on rails核心的持久性框架。 But we didn t di *** iss the idea of developing in another language and began to build our apppcation in ruby on rails , a web apppcation framework built on the ruby language 但是,我们没有放弃用另一种语言进行开发的想法,开始用ruby on rails构建我们的应用程序,这是一个在ruby语言上构建的web应用程序框架。 Cases related to taxi services increased from 1 , 142 in the previous quarter to 1 , 285 in this quarter and the number of plaints and suggestions on rail services increased from 68 in the previous quarter to 88 this quarter 涉及的士服务的个案则由上季的1142宗增至今季的1285宗。涉及铁路服务的投诉及建议由上季的68宗增至今季的88宗。 While ruby on rails is a very new and exciting framework that has generated considerable interest in the web development munity , the core architecture follows the basic patterns found in j2ee 虽然ruby on rails是一个非常新、令人兴奋的框架,并且在web社区中已经引起了人们相当的兴趣,但是它的核心架构仍然遵循在j2ee中发现的基本模式。 It"s difficult to see on rail in a sentence. 用 on rail 造句挺难的
2023-08-18 11:36:161

github windows 使用什么语言开发的

Github在3月19号开放了新的项目展示页面(Showcase),Showcase根据项目属性来组织、定义一系列的开源项目列表,可以更清晰的发现你所需要的开源项目。在3月26日的Showcase中,Github放出了一个新的类目:支撑Github的开源技术,这里列举了Github所使用的一些主要的开源项目。如下是这些开源项目的介绍:linguist语言识别库,能够自动根据项目的代码来识别你所使用的语言。 在你的项目源代码页面,可以看到一个彩条,点开以后会显示项目中的编程语言比例。linguist主要通过文件的后缀来识别,对于一些通用的扩展名,例如.m文件,linguist通过一些语言的特征片段来做判断。由于编程语言很多,linguist还不能覆盖所有语言的检测。jquery-pjaxpjax是Github的联合创始人之一defunkt的作品,它使用html的pushState特性与ajax,可以实现页面内容动态局部刷新,当点击项目源代码页面中具体的一个文件或者文件夹时,你将会看到页面的其他部分是不变的,只有定义的页面DOM会刷新,这里使用的就是pjax。elasticsearchEleasticsearch支撑了Github的搜索功能,2年之前Github使用Solor做搜索,随着用户和托管项目的增加,索引的大小超过了solor节点的最大存储空间,也出现了很多的问题,Github团队在思考解决方案时决定使用Elasticsearch做替换。Github最开始使用ES时,使用了44台亚马逊EC2实例,每台实例配备2T的存储,其中8台实例指负责查询请求。目前,Github已经将原有的EC搜索集群迁移到了东海岸的一个数据中心,使用8台物理主机替换了44台EC2。RailsRuby实现的MVC Web框架。Github的用户界面和功能大部分基于Rails构建,不过需要注意的是现在虽然Rails的项目版本已经发展到了Rails 4,但是Github依旧使用的是自己维护的2.3分支,对于不保持和现有的Rails主版本号一致的原因,Github员工Kneath做了如下的解释:. 花更过的时间来升级更新Rails,将会减少为用户构建新特性的时间,我们更关注用户;. 性能问题是一个很重要的考虑。在过去的几年中,我们极大的减少了响应时间。而升级Rails不仅会带来一个更慢的框架,而且还会引入一个不同的架构——我们需要再根据新的框架特性来定位优化性能。我们对于现有的框架已经做了很多的优化以保持性能稳定,最主要的是:将时间花费在升级上不会让我们的架构更快。. 过去的三年我们一直在升级这个堆栈,不升级Rails版本我们依然可以使用新的特性。RedisRedis是K/V存储系统,知名的NoSQL实现之一,在Github,主要使用Redis来进行队列中的异常处理。在Github早期,曾尝试过很多的基于Ruby的队列机制,也曾使用Amazon SQS,但是这些方案都不能在Github快速增长的同时满足稳定性要求,最终Github迁移到了使用Redis的技术方案resque。sprocketSprocket是一个网站资源打包的Ruby库,它不仅能够管理JavaScript和CSS资源,还可以按照pipline的方式来流式预处理CoffeeScript、Sass、SCSS和LESS代码等;libgit2libgit2是一个可移植、纯C语言实现的Git核心方法类库,提供API重新链入Git方法。Github的背后使用的原生的git来实现commit、push等功能,但是使用libgit2来针对桌面应用调用、Ruby代码中调用等;ruggedlibgit2的Ruby类库;bcrypt-rubyOpenBSD bcypt()密码哈希算法的Ruby实现;html-pipelinehtml-pipline是一个gem包,可以将现有Github前端HTML中的一些特性进行流式处理,例如在Github的评论框中,你可以@某一个人、输入emoji的表情、使用markdown的语法来写内容等,但是这些都是由单独的插件来控制的,html-pipeline可以流式的使用相应的插件处理原始内容,例如先将markdown转义成html,继而自动添加emoji表情,然后进行代码的语法高亮等。gemoji在2013年的QCon北京前夜:Github Drink Up活动中,来自Github的工程师Tim在现场的活动中谈到了他们的一个文化:使用emoji。他解释道:“很多情感使用文字不能做出形象的表达,但是使用emoji表情却能够起到不一样的效果”。在Github现有评论框或其他内容中,都可以看到emoji的身影,所使用的就是gemoji这个gem包。jekyllJekyll是一个静态博客生成的程序,Github中项目的Page页面,默认选型使用的就是jekyll。gollumGollum是一套基于git的wiki系统,Github项目的wiki系统背后使用的就是这套开源框架;octokit.rbGithub API的官方Ruby SDK;HubotHubot是Github自行开发的一个聊天机器人,当然它已经超过了聊天机器人的范畴,Github作为一个异步办公的团队,日常的协作、沟通很大部分依赖于聊天室,通过Hubot,Github的员工可以在聊天室中给机器人定制一些特定的回复、3D打印模型,甚至通过hubot来部署生成环境的代码、获取服务状态等,在2013年的QCon北京中,Giuthub的工程曾针对如何使用Hubot做运维进行过分享:《ChatOps at GitHub》。d3d3是使用JavaScript实现的数据可视化框架,使用HTML、SVG和CSS等,在d3的基础之上发展处诸如crossfilter、NVD3.js等一系列扩展或者简化框架,并且形成了一个良好的社区。作者mbostock目前供职于NYTimes,d3是他的博士论文项目,目前Github使用d3来展示托管项目提交历史、记录等的可视化效果图。plaxplax是控制视差元素的JavaScript类库,你可以在404、505等页面看到它的实现效果。aceAce是一个使用Javascript开发的代码编辑器,具备语法高亮、快捷键绑定等特性, Github使用Ace实现基于web的代码编辑功能。zeptoZepo是一个JavaScript框架,其特点是兼容现有jQuery API的同时,自身体积十分小;zeroclipboradGithub的“点击复制到粘贴板”的功能就是使用的zeroclipboard,zeroclipboard使用一个不可见的Adobe Flash动画来实现复制粘贴,并提供Javascript的API接口以供调用。charlock_holmescharlock_holmes用来检测字符编码格式,并可以自动将字符编码转化成UTF-8。puppet服务器运维工具,可以进行自动化部署、集群管理等。momentmoment是一个日期框架,用于解析、验证、格式化日期等,其中一个常用的功能是将原始的Javascript时间类型转化成方便阅读的时间说明格式,例如:”2小时之前“、”3天之前“这种形式。bower前端资源包管理工具,可以通过bower install <package>的形式将常用的前端资源下载到本地的项目目录中,例如:bower install bootstrap将会自动下载bootstrap的项目资源到本地的项目目录中,不需要自己手动来下载、移动资源文件,并且通过配置文件可以方便分享给同事、简化项目初始化等;resqueResque是Github Enterprise中使用的一个基于Redis的后台作业控制系统,提供可视化的界面,可以方便的监控后台作业的运行状态和监控情况。另外,Github还发布了“支撑Github Windows客户端的开源项目”和“支撑Github Mac客户端的开源项目”两个Showcase。
2023-08-18 11:36:241