本来像NetBeans这样到东东,应该是装上就可以用到。但是在Leopard上就是有些问题出在gem上面。Leopard上默认的gem目录是系统目录,而NetBeans管理gem的时候需要写权限,于是就会报错了。典型的情况就是安装ruby-debug-ide的时候。
为了解决这个问题,我们可以为NetBeans设置自己的GEM_HOME,也就是它把gem安装到哪里。假设你是使用dmg安装的NetBeans,那么应该装在/Applications/NetBeans目录下,这样可以打开下面到文件。
sudo vim /Applications/NetBeans/NetBeans\ 6.0.a ...
这几天刚刚给自己的小白安装了Leopard,开始迫不及待的把开发环境搬到上面去。Leopard已经自带了完整的ruby-1.8.6和rails-1.2.3,我的项目是用rails-1.2.6的,另外还有一些gem要安装,所以二话不说,马上开始。
# 更新gems,从0.9.4到1.0.1
sudo gem update --system
# 安装rails-1.2.6
sudo gem install rails -v 1.2.6
# 安装rails-2.0.2
sudo gem install rails
# 安装其他package
sudo gem install fer ...
首先安装rubyzip:
gem install rubyzip
《Ruby Cookbook》里面简要地介绍了如何使用rubyzip读写zip文件,代码如下:
# 写zip
require 'rubygems'
require 'zip/zipfilesystem'
Zip::ZipFile.open('zipfile.zip', Zip::ZipFile::CREATE) do |zip|
zip.file.open('file1', 'w') { |f| f << 'This is file 1.' }
zip.dir.mkdir('sub_di ...
我们知道,在rails中,habtm和polymorphic都是非常好的东东,特别是后者,可以说是rails的ORM中非常强大的功能。《Agile Web Development with Rails》虽然详细讲述了habtm和polymorphic关联,也讲了如何把模型类映射为连接表,但是并没有讲如何把habtm和polymorphic一起使用做一个介绍。这里我就来简单说一下。
还是出自真实项目中的需求,项目是全国大学本科教学评估支持系统,说白了就是大学用来支持本科教学评估的东西。里面有这样一个use case:
评估中需要召开座谈会,参加的人有:专家、教师、学生...(反正就是学校里面 ...
手头一个项目有这样一个需求,数据库中有一张学生表students,其中每个学生都有自己的生源地(come_from),用户希望能够随机的选择一些学生出来,但是要保证每个生源地的学生都有。
我的开发环境是RoR + MySql,简单考虑了一下后,第一个能想到的方法是在rails中生成随机数,然后用offset来得到随机的学生。但是这样做比较麻烦,性能也会很差,因为首先要知道每个生源地下有多少学生,不然的话,生成的随机数可能会过大。
排除了这个选择,于是考虑是否可以在sql级别实现。去查了查MySql的manual,发现有个然数RAND()可以用来生成0到1之间的随机浮点数,感觉可以用这个来做 ...
早就想找个机会写写rake文件,但是接触到的项目都不怎么需要,所以一直也没有去学习一下。这两天一个项目需要把客户给的很多excel文件导入到数据库中(我用的好似MySQL),到网上找了一些工具,感觉都不好,因为客户的excel格式比较乱(特别是日期的格式,竟然是中文数字和阿拉伯数字都有的...),所以就想干脆仔细写一个算了。这是正好想到可以顺便学习一下rake,于是就动手啦。
网上关于rake的文章有不少。如果想快速上手,那么Rails Envy的Ruby on Rails Rake Tutorial是绝佳的入门教程;如果想从更高的角度理解rake,那么当然要看Martin Fowler大大 ...
非常非常奇怪的问题。一开始在mac下面用standard rails bundle + ferret/acts_as_ferret,一切正常。后来想引入rmagick,于是使用rmagick bundle + ferrect/acts_as_ferret,结果报错,server启动不起来。mail list上去问,没人搭理咱。
索性换到windows上,顺便开始测试网页的浏览器兼容性。把代码commit到svn,然后找台新装的windows xp sp2,安装ruby、rails、ferret、rmagick,然后checkout代码。启动server,报错说no such file to ...
我或多或少算是一个Mac fan,但是对于这件事,我不得不说自己还是有一些失望的。在Mac上做开发已经有一段时间了,整体感觉就是Mac对developer的支持不是很好。也许Mac的目标主要就是家庭用户,但是作为Mac fan兼,当然是希望它能适合我么developer的口味。
这次的问题是在Mac上安装RMagick,网上有很多文章详细说明了如何手动安装,我这里就不重复了,而且手动安装也问题多多。因为有了Locomotive这个好东西,简化了很多安装的过程。最简单的办法就是到Locomotive的主页上下载一个含有RMagick的bundle,按道理说就万事大吉了,不是吗?
实际情况是, ...
在view里面可以用h来escape html内容。那在controller里面呢?我的需求是把一些数据用json格式发送到前台,这些数据是用户之前输入的。
一个挺有意思的问题,想了半天没有解决办法。
情景是这样的:系统中有两种category,system_category和user_category,所有属性都一样,只是一个是系统分类,一个是用户自己的分类。比如javaeye就是有这样的机制。用户发文时可以同时选择system_category和user_category。假如数据库的设计是system_category和user_category都在一张表categories中。那么Category和Article类的代码大致如下:
# Category.rb
class Category < ActiveRecord::Bas ...
大家可以试验一下,在我的开发环境中会出现这个问题,不知道是不是只有我有问题。做法如下:
随便建立一个Rails工程;
随便生成一个scaffold_resource,比如map.resources :articles;
在routes.rb中加入如下代码,添加自己的routes mapping:
map.articles_paginate "articles;paginate", :controller => 'articles', :action => 'paginate', :conditions => { :method => :get }
在ArticlesControlle ...
从来没真正部署过一个production级别的rails应用,但是9月份很可能要部署一个,所以最近也开始关注Rails的部署问题。这里算是抛砖引玉吧,还请各位有经验的同志热烈讨论,我想很多人也都对这方面很感兴趣。
Robbin之前的帖子里面讨论过如何选择Rails的部署方案,也挺详细的,我估计硬件和操作系统方面大家分歧应该不大,总归是linux,服务器越强劲,内存越大越好。所以问题就到了软件方面。数据库大概也不用怎么讨论,mysql之类的东西大家心里都有数。关键还是server的问题。
JavaEye现在用的server应该是lighttpd和fastcgi吧,从大家浏览网站的体验上看,性 ...
如果整个routes是使用传统的mvc方式实现的话,我们可以简单地记录一下当前的controller和action的名字,等到登录成功之后就可以redirect过去。
但是如果使用REST,则就不能简单地记录controller和action,例如/articles/1;edit这样的url就比较特别。另外一个问题是,除了要记录url外,还要记录使用什么HTTP Method,是GET, Post, PUT还是DELETE。
如果涉及到的action就是标准的index, create, new, show, update, edit, destory,那么可以使用一个case判断,然后调 ...
刚刚逛了一圈论坛,竟然没人提到这么个消息,难道Eclipse真的没落啦?
Europa的事儿咱就不说了,之前有一位仁兄已经讲得很清楚了。今天上午到Eclipse主页上溜达了一下,发现3.3在昨天发布了,应该算是一个不小的新闻哦。记得前一阵子总有人说Eclipse发布的速度变慢了,跟不上NetBeans,看来这次发布算是小小地安抚了一下Eclipse的粉丝们啊。
主页上明显的一个变动是提供了针对不同类型开发者的不同版本的下载,而不再只是一味地SDK=Platform+JDT+PDE了,算是不错的改进。另外一个值得注意的地方是3.3版本默认加入了Mylyn这个东东。Mylyn就是以前的Myla ...
安装了那个Locomotive,还有iTerm,还有Textmate,以为就万事大吉了。然后运行gem安装ferret,没想到竟然报错说无法make。到命令行下试了一下,果然不能使用gcc啊,make啊这样的东东。Mac不是Unix-based灭?
于是去google了一下,发现要装个xcode才能搞定这些东东,敢情apple把这些东西都给踢掉了啊。在去看看xcode,倒还是免费的,不过安装程序就有900M多,好不容易下载下来了,安装竟然要将近3GB!!可怜我一共只有40GB硬盘的小白啊...
你说我一不会去写cocoa之类的东东,而不会在xcode里面写java。我就是想要个gcc和ma ...
这里说的是通过apt-get安装ruby,自己编译的情况就免了。
首先,在安装ruby本身时一定要把ruby和ruby-dev全安装了。现在的版本是1.8,因此应该执行如下命令
sudo apt-get install ruby1.8 ruby1.8-dev rubygems
这是因为许多plugin或者gems都要依赖dev下面的东东,比如ferret就要用到一个叫mkmf的东西,后者就是包含在dev中的。
然后可以gem或者apt-get来安装rails,不过推荐前者,因为版本肯定是最新的。比如我用的源里面的rails还不是1.2的呢,用apt-get就不好了。
最后就是找找 ...
在使用RoR创建form时,很多时候需要基于model之间的关系创建ComboBox。RoR提供了很多方便的helper方法帮助我们完成一个 form的创建。例如,如果想要为article创建一个form,并且要为article选择category时,可以使用如下方法:
<% form_for(:material, :url => url, :html => { :method => method }) do |f| %>
<p><label>Name</label><br/>
<%= f.text_field :name %></p> ...
Ruby的动态语言特性和强大的meta-programming模型一直是让我这种Java程序员唏嘘感慨。看着RoR可以实现那么多魔术般的事情而不费吹灰之力,我着实想好好学学Ruby的meta-programming。可惜这方面资料好像比较少(至少我是没有找到什么好的,JavaEye这里讨论的也不多),我只能硬着头皮自己慢慢摸索。这篇文章只能算是一个最简单的入门,给大家展示一下Ruby中的meta-programming大概是什么样子。
下面代码大概会做一下事情:
根据指定的txt文件动态创建一个class,例如“people.txt”会被创建为Peo ...
- 浏览: 137418 次
- 来自: 上海交通大学软件学院

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
另一只眼看Eclipse,所谓 ...
其他不管你学什么都会遇到一定的困惑的,一定的。
-- by mylvan -
我的第一关rake文件
robbin 写道每次当我想操起ruby写rake file的时候,都发现我三行 ...
-- by rubynroll -
我的第一关rake文件
抛出异常的爱 写道rake是建表结构的....不是用来导数据的 不如用exce ...
-- by liusong1111 -
我的第一关rake文件
不知大家有没有这种需求,用户的日常操作中,原始数据可能是其他人员发给他的exce ...
-- by zengyinbo -
使用ruby生成zip文件
如果已经拿到了csv文件,就用OO转成Excel成么? ---非程序员思路
-- by lgn21st






评论排行榜