Archive for the ‘ruby on rails应用’ Category
Aptana Studio破解成Professionfal版
星期五, 09月 19th, 2008Aptana Studio 1.1 pro是收费的,下载后可以免费使用30天,我们默认安装的是aptana Studio Community Edition版本
我们现在让它变成pro免费的
首先到http://blogimg.chinaunix.net/blog/upfile2/080912015855.zip下载这个压缩包,然后解压开来,把里面的jar包放入Aptana Studio中plugins目录下 覆盖即可。
然后启动 启动Aptana,在Help–>Aptana Studio Professionfal License中配置如下信息
UserName:chmod1088
License Key:
31944004560332336325779600
98660230885555753018530089
75299102292763462760874877
46375091747064074102645182
24572849254261527524405006
39469212902319563582046972
64645095765376006994278504
88979222857698220266380959
34912059181707629747331529
99774921138876407249130539
08383135766226568404327395
4373395023803431833559
最后 点击Validate验证,然后点击Install安装,完成后Aptana会从Community Edition变成Professional Edition

ROR项目中连接多个数据库的方法
星期三, 09月 10th, 2008首先打开config目录中的database.yml文件,配置要访问的另外一个数据库的信息。
- other_db_name_connection:
- adapter: mysql
- database: other_db_name
- username: root
- password:
- encoding: utf8
- host: localhost
这个数据库可以和以前的数据库在同一台机器上,也可以在其他的机器上,在host里边可以完全配置。
然后生成一个继承ActiveRecord::Base的抽象类
- class External < ActiveRecord::Base
- self.abstract_class = true
- establish_connection :other_db_name_connection
- end
现在这个继承类重写了
ActiveRecord::Base 的数据库链接,而这个链接就是我们在配置文件里边定义的。
dupal_database,那么这个类的代码就要进行部分的改变。
如下:
- class DupalDatabase::External < ActiveRecord::Base
- self.abstract_class = true
- establish_connection :other_db_name_connection
- end
然后再新建一个model文件,生成一个新的model类。这个新的model类继承了上边的抽象类
将继承上边的model类和上边的这个抽象类放到一个包里。按照上边的,我们暂时放到dupal_database
- class DupalDatabase::Stock < DupalDatabase::External
- self.table_name ='day_info'
- end
如果利用其它系统的数据库,或者其他表的名字会变,那么最好自定义表名
最后我们来调用访问
访问的时候如果你把model放到其他的目录里边比如上边的目录,那么访问起来就是:
- stock =DupalDatabase::Stock.find(:all)
- stock= DupalDatabase::Stock.new()
现在rails当中就可以完全的访问不同的数据库了,这种方式用过可以应用到rails的分布式架构中。。
美国主机Dreamhost的Ruby on rails配置信息
星期四, 08月 28th, 2008Ruby on Rails 版本
Ruby version: 1.8.5
Rails version: 2.0.2
安装过的GEM列表
actionmailer (2.0.2, 1.3.6)
actionpack (2.0.2, 1.13.6)
actionwebservice (1.2.6, 1.2.3)
activerecord (2.0.2, 1.15.6)
activeresource (2.0.2)
activesupport (2.0.2, 1.4.4)
acts_as_taggable (2.0.2, 1.0.4)
ajax_scaffold_generator (2.2.1)
archive-tar-minitar (0.5.1)
auth_generator (2.0.1, 1.5.3, 1.1.0)
Bloglines4R (0.1.0)
BlueCloth (1.0.0)
builder (2.0.0, 1.2.4)
(more…)
Ruby on Rails 之 Oracle 应用:简易教程
星期一, 08月 25th, 2008示例:简单的产品目录
我从去年开始投资高档漫画书,特别是 1946 年以来的旧版漫画书。我创建了一个简单的 Ruby on Rails 数据库应用程序,利用它我在买卖活动中就可来方便地插入、移除、更改和删除书籍。因为是供我个人使用,所以程序自然是能减则减。本文中要构建的应用程序是我所使用的 Ruby on Rails 应用程序的“廋身”版。
尽管 Rails 和 Oracle 数据库可用于很多平台上,但本文采用了 Windows XP,有证据表明它是 Oracle 应用程序开发人员最常用的平台之一。本示例非常简单,其实就是 “Hello World” 编程语言示例的数据库版,目的是让您初尝 Ruby,但它并没有展示 Rails 的所有能力,就像任何编程语言的“Hello World”示例都没有淋漓尽致地展示该语言的所有能力一样。
如果您在运行这一示例的过程中出现了问题,原因可能有以下三种:下载的代码不对;数据库设置不当,不能连到该示例应用程序;或者是您的 Windows XP 操作系统出现了问题。在开发本示例的过程中,我碰到了一些涉及版本和数据库配置的问题 — 所有这些都是由缺乏知识而造成的。我从我的朋友 Michael Carland 那里学到了许多知识,这样才得以顺利完成这一示例,并使之尽量简单。
实际情况是,实现 Ruby on Rails 和 Oracle 的协同工作并不是一件简单的事情。有时会让人倍感灰心。如完全按本文中的说明,您应该不会碰到问题。但是一旦超出本示例的范围,就会出问题。Rails 可以达到很高的生产率,但它是一个命令行开发环境,并不提供高级集成开发环境通常所具有的“自动化”功能。如果您不是“自力更生”型的技术人员,那目前最好不要使用 Rails。
第 1 步:设置 Oracle 数据库
如果您对结合使用 Rails 和 Oracle 不感兴趣的话,您也不会来看这篇文章,所以您需要安装一个 Oracle 数据库实例并向该数据库添加一个表。严格遵循本文中的命名规范非常重要,否则由 Rails 自动生成的代码将无法正常运行(如果不进行调整)。您要创建的表如下所述:
CREATE TABLE comics (
id, NUMBER(10) NOT NULL,
title VARCHAR2(60),
NUMBER(4),
publisher VARCHAR2(60),
PRIMARY KEY (id)
);
CREATE SEQUENCE comics_seq;
(more…)
Ruby on rails 架构模型
星期日, 08月 24th, 2008Ruby on rails 框架提供了开发企业级应用的全部解决方案这一点也是Ruby on rials能吸引开发者的重要原因。
Ruby on rails提供了开发企业级应用所必需的全部功能:Web服务、处理HTTP请求和HTTP响应的MVC框架、处理底层数据持久化的ORM框架。而这些服务,在轻量级Java EE应用中都有相应的实现,而且每种服务都有超过一种的选择。
Ruby on rails 通过大量约定,简化了Java EE应用中的XML文件配置,但即便如此,我们依然可以看出Ruby on Rails和Java EE应用的较大类似性。
Rails框架主要由如下4个部分组成。
(1)WEBrick服务器:这是所有Web应用的基础。Webrick服务器主要用于提供底层的Socket连接和多线程的服务。通过WEBrick服务器的支持,允许WEB引用开发者无须关心底层的socket通信机制,无须理会多线程等,就可以开发Web应用。
(2)RHTML页面:这是一种功能强大的模板页面,它是Ruby on Rails的视图层技术,包括负责收集用户输入的表单页,以及包含显示处理结果的显示页。
(3)ActionController:这并不是以个类,而是一个模块。该模块里包含了以个Base类,Base类是所有控制器的父类。
(4)ActiveRecord:这是Ruby on Rails的核心,也是Ruby on Rails应用中最复杂的组件,它合并了Java EE应用中的三个成员–富领域对象、业务逻辑组件和DAO组件,因此功能非常丰富。
学习Ruby on Rails开发主要就是学习如何使用ActionController里的控制器方法来取出请求参数,并调用ActiveRecord组件里的业务逻辑方法,再更具不同的领域模型来建立相应的ActiveRecord Model对象
rails新缓存EHCache高效能
星期日, 08月 24th, 2008
在 MRI的世界里,我们使用的是memcached,是一个libmemcached的C客户端的Ruby接口。它也是目前唯一支持一致性hash的 Ruby程序库,需要在生产环境下工作。如果是JRuby的话,就很多不同的选择。一个是可以通过JNA或者JRuby FFI或者其他什么编写自己的hook到libmemcached中。另一个就是寻求Java其他的缓存解决方案,无疑Ehcache是首选了。
Rails 2.2要改成线程安全的了
星期二, 08月 19th, 2008这篇文章对于ruby来说,又是一”利好”消息.
Ruby on Rails官方博客发布的信息,Josh Peek加入了Rails的核心开发团队。Josh Peek正在开发的一个项目是让Rails框架变成线程安全的版本,该项目参加了今年的Google Summer Of Code大赛。
DHH宣布将在Rails 2.2版本当中合并Josh Peek的关于Rails线程安全的项目工作成果,这意味者Rails下一个版本,即2.2版本将支持多线程方式运行Rails。
我们知道,截止Rails 2.1版本,Rails仍然是以单进程内单线程方式运行,如果Rails改为单进程内多线程方式运行,会带来什么好处呢?
1、节省物理内存
由于多个线程在一个进程内可以共享内存空间地址,可以节省大量物理内存空间地址。
2、可以并发响应更多请求
一个进程内多个线程的调度可以由Mongrel等支持多线程的Ruby应用服务器管理,因此可以根据请求负载,创建更多线程响应请求,提高并发处理能力
但是以多线程方式运行Rails,并非革命性的进步,多线程也会带来很多问题:
1、ruby进程的GC过程会阻塞进程内所有线程的运行,GC比多进程方式带来更大的影响
2、多线程可以共享进程内资源,可能会导致程序员滥用多线程造成多个线程资源争用问题
3、多线程内任何一个线程的问题都可能影响整个进程的稳定运行。
但是多线程的Rails对于JRuby无疑是一个天大的好消息!由于JVM本身就是支持内核多线程的,因此多线程的Rails运行在JRuby上面是一个天然的绝配,不但可以大幅度减少JRuby的内存消耗,而且可以切实有效提供JRuby的并发处理性能。
总之,Rails 2.2支持多线程将为我们打开Rails的另外一扇门。
本篇文章如果涉及到版权问题,请及时联系管理员
Rails快速实现Ajax多种常用效果,放大,拖拉,抖动…
星期一, 08月 18th, 2008rails项目中,自动附带有prototype.js等javascript,将它们包含在页面布局中,就可以直接调用,而不用自己写javascript
View:
layouts/application.rhtml
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
- <head>
- <title>Ajax on Rails</title>
- <%= javascript_include_tag :all , :cache => true %>
- <%= stylesheet_link_tag "application" %>
- </head>
- <body>
- <h1>Ajax on Rails</h1>
- <%= yield %>
- </body>
- </html>
ajax/index.html.erb
- <%= link_to_function "Fade","new Effect.Fade('target')" %><br/>
- <%= link_to_function "Opacity","new Effect.Opacity('target',{to:0.5})" %><br/>
- <%= link_to_function "Scale","new Effect.Scale('target',200)" %><br/>
- <%= link_to_function "Move","new Effect.Move('target',{x:50,y:10})" %><br/>
- <%= link_to_function "Highlight","new Effect.Highlight('target')" %><br/>
- <%= link_to_function "Parallel","new Effect.Parallel([
- new Effect.Move('target',{x:50,y:10}),
- new Effect.Opacity('target',{to:0.5})
- ])" %>
Controllers:
ajax_controller.rb
- def index
- end
ajax 在 rails里的更多应用,去下载ajax on rails电子书或者去dangdang买本,才30几块。目前都是英文版本
Ruby on Rails中怎样给link_to加class和id样式
星期六, 08月 16th, 2008给link_to加上class样式 比如我们的class样式为: classror:
- <%= link_to "Link name", { :controller => 'controller_name',:action => 'action_name' },:class => 'classror' -%>
给link_to加上ID样式 这里说的不是javascript调用的 这里说的是样式ID(#):
- <%= link_to "Link name", { :controller => 'controller_name',:action => 'action_name' },:id=> 'idror' -%>


