Category Archives: 插件

ActiveScaffold中文版上线

相信参加了Shanghai on Rails第二次活动的朋友一定都对Forrest的《ActiveScaffold简介》印象深刻,现在,经过Forrest及其团队的不懈努力,ActiveScaffold中文网站近日上线。除了中文版教程和文档外、还有Forrest开发的中文化插件、以及适应企业开发的各种扩展也一并提供下载。

Posted in 插件 | Leave a comment

Piston: 推动Vendor前进的活塞

喜欢NBA的朋友,肯定知道Piston是活塞的意思,它是发动机的一个重要组件,与其它组件一起推动汽车前行,但是这里我要讲的Piston是一个Ruby Gem,同发动机的活塞类似,它的作用是确保Rails应用的Vendor得到持续更新,不过不同于svn:external,Piston让一切都在你的控制之下,从而确保你不会在产品阶段由于某个插件的更新而导致整个应用挂掉,同时又可以在开发阶段随时得到最新版本的插件。 安装 $ gem install –include-dependencies piston Successfully installed piston, version 1.0.0 使用 1. 首先导入远程仓库的代码: $ piston import http://dev.rubyonrails.org/svn/rails/trunk vendor/rails Exported r4720 from ‘http://dev.rubyonrails.org/svn/rails/trunk’ to ‘vendor/rails’ $ svn commit -m “Importing local copy of Rails” 2. 然后在你需要的时候,更新到最新版本: $ piston update vendor/rails Updated ‘vendor/rails’ to r4720. $ svn commit -m “Updates vendor/rails to the latest [...]

Posted in 插件 | Leave a comment

acts_as_chattable 0.2 beta

相比0.1,主要有以下改动: 集成Juggernaut,支持PUSH 去除YUI,使用script.aculo.us生成聊天窗口 解决juggernaut在Rails 2.0中工作不正常的Bug 不再需要修改user model 不再依赖users controller和current_user helper 打开新窗口时,自动设置焦点到输入框 已测试IE7,FF2,FF3 beta2,Safari 2 安装 ./script/plugin install http://svn.elctech.com/svn/public/plugins/acts_as_chattable 示例 svn co http://svn.elctech.com/svn/public/demo/acts_as_chattable 使用 首先,我假设你已经拥有了一个名为‘User’的model,并且User model拥有一个‘name’方法,‘name’方法将返回这个user的名字,下面就让我们开始吧! 1. 安装 Juggernaut, acts_as_chattable 需要 Juggernaut 来实现 PUSH 机制. script/plugin install svn://rubyforge.org//var/svn/juggernaut/trunk/juggernaut 2. 生成 chat_controller. script/generate chattable 3. 在试图中渲染 chat <%= render_chat(user, friends) %> <%= buddy_list(friends) %> user 就是当前登录的用户,它用于为当前用户创建一个 Juggernaut [...]

Posted in 插件 | 5 Comments

acts_as_chattable: Web聊天插件

我的第二个插件,使用它,你可以很简单的集成站内用户聊天功能到你的Rails应用种。 实现时,参考了chatten项目,并使用它的部分源代码,因此,在这里要先感谢chatten项目的作者Jacob Pedersen。 安装 script/plugin install http://svn.elctech.com/svn/public/plugins/acts_as_chattable Demo svn co https://svn.elctech.com/svn/public/demo/acts_as_chattable 使用 首先,这个插件假设你有一个user model以及一个users controller,并且有一个current_user helper返回当前user,如果你是用RESTful Auth,它们应该已经在那里了,不过如果你还没有这些,那先创建它们,然后让我们开始: 1. 创建chat_message model: script/generate chattable 2. 添加 acts_as_chattable 到 user model class User   acts_as_chattable   …   def name     …   end end 你最好为user model 定义一个name方法,否则所有用户的名字都将显示为’Unknown’. 3. 在users controller中包含ChatSystem module class UsersController   include ChatSystem   … end 4. 在视图中渲染聊天模块 <%= render_chat(friends, use_yui) [...]

Posted in 插件 | 8 Comments

Railsify: 新的Rails插件仓库

Railsify是一个新的Rails插件分类网站,你可以向它提交你的插件,也可以通过它提供的分类和搜索功能快速的找到你需要的插件,不过跟Agile Web Development的插件仓库比起来,它的插件数量还有些少,并且不支持RSS订阅,但是它的UI真的很不错。 另外,如果你留意到了网站最下方的那一行小字,那么你会发现Railsify,Railsforum以及RailsWork都是这个家伙干的,他就是Adam Cooke,这里是他的Blog。

Posted in 插件 | 1 Comment

swfchart: 我的第一个插件

简介 Swfchart能够让你很轻松的将maani.us的SWF/XML Chart绘图工具集成到你的Rails应用中。 安装 首先你需要去maani.us下载SWF/XML Chart,目前经过测试的版本是4.6版,然后将其解压缩到你的public目录下: public |– charts.swf `– charts_library     |– arno.swf     |– arst.swf     |………..     `– scno.swf 然后安装swfchart generator: $ cd $RAILS_ROOT/vendor/plugins $ svn co https://svn.elctech.com/svn/public/plugins/swfchart swfchart 使用 1. 生成文件 $ ./script/generate swfchart create lib/swfchart_helper.rb create app/controllers/swfcharts_controller.rb create app/models/swfchart.rb create test/unit/swfchart_test.rb create test/functional/swfcharts_controller_test.rb 2. 添加路由,你需要在route.rb中为swfchart添加一条路由: map.swfcharts ‘swfcharts/:name’, :controller => ‘swfcharts’, :action => ‘show’ 3. [...]

Also posted in 指南 | 4 Comments

Rails插件: RAV

简介:RAV是一个绘制Rails应用模型图的小插件。 作者:Christoffer Sawicki,Phil Hagelberg 许可:GPLv2 SVN仓库:svn://rubyforge.org/var/svn/rav/stable 安装 RAV使用Graphviz来绘图,因此你需要先安装Graphviz。 然后安装RAV: $ cd vendor/plugins $ svn co svn://rubyforge.org/var/svn/rav/stable rav 使用 $ rake visualize 这将在你的RAILS_ROOT/doc目录下生成一个diagram.png文件: 更详细的用法参看RAV主页。

Posted in 插件 | 1 Comment

Rails插件: Annotate models

简介 Annotate models能够以注释的方式在Model顶部自动生成此Model的大纲(schema)信息,并可以在Model的大纲发生变化后自动更新。 对于拥有许多Model的大型项目来说,在Model相关文件中维护此model的大纲信息就显得尤为重要,你不需要去db/migrate目录下搜寻此 Model相关的Migration文件,也不需要去mysql中敲describe XXX命令,就可以迅速了解此Model对应的表拥有那些字段。 作者:Dave Thomas SVN仓库:http://repo.pragprog.com/svn/Public/plugins/annotate_models 许可:Ruby License 安装 $ ./script/plugin install http://repo.pragprog.com/svn/Public/plugins/annotate_models 使用 $ rake annotate_models 这将会在所有Model文件及Fixture文件的头部添加此Model的大纲信息,添加的大纲信息看起来是下面这个样子: # == Schema Information # Schema version: 1 # # Table name: users # # id :integer(11) not null, primary key # login :string(255) # email :string(255) # crypted_password :string(40) # salt :string(40) # [...]

Also posted in 数据库 | Leave a comment

Rails插件: Restful Authentication

简介 Restful Authentication插件为你生成一个REST风格的认证系统模板,除了支持最基本的用户管理和认证功能外,还有一个可选的邮件激活功能。 作者:Rick Olson 许可: Rails’ (MIT) SVN仓库:http://svn.techno-weenie.net/projects/plugins/restful_authentication/ 安装 $ ./script/plugin install http://svn.techno-weenie.net/projects/plugins/restful_authentication/ 使用 1. 生成框架代码 ./script/generate authenticated user sessions –include-activation 这将会生成一个model,以及两个controller: models/user.rb,保存用户的登录信息 controllers/users_controller.rb,提供简单的用户管理功能 controllers/sessions_controller.rb,提供用户认证支持 –include-activation参数决定是否生成向新注册用户发送激活码的代码。 2. 增加路由 map.resources :users map.resource :session 3. 如果你使用Rails 1.2.3,那么还需要在route.rb中增加: map.resource :session, :controller => ‘sessions’ map.activate ‘/activate/:activation_code’, :controller => ‘users’, :action => ‘activate’ 4. 最后,还需要在config/environment.rb中为user model增加一个observer config.active_record.observers = :user_observer [...]

Posted in 插件 | 4 Comments

has_many_polymorphs:简化多对多映射

简介 假设我们要开发一个教学系统,那么老师和学生必然是系统不可缺少的两个model,要建立他们之间的映射,我们的数据库可能看起来是下面这个样子: 但是随着系统的开发,我们发现还需要将课程管理也纳入进来,于是数据库就变成了这个样子: 但是这样的数据库模型明显的不够DRY,因为teachers_students和teachers_courses两个表不但字段相似,完成的功能也是相同的,那么可不可以将它们合并呢? 答案是:可以。 使用evan weaver的has_many_polymorphs插件可以很轻松的完成这个任务。 安装 $ script/plugin install -x svn://rubyforge.org/var/svn/fauna/has_many_polymorphs/trunk 使用 对于上例,应用has_many_polymorphs后,我们的数据库看起来是这个样子: 修改app/models/teacher.rb class Teaching < ActiveRecord::Base   belongs_to :teacher   belongs_to :teachable, polymorphic => trues end class Teacher < ActiveRecord::Base   has_many_polymorphs :teachables,      :from => [:students, :courses],      :through => :teachings end 这就搞定了,不需要修改student.rb和course.rb,现在你可以这样使用teacher了: teacher.teachables # 老师教授的所有课程及学生 teacher.students # 老师教授的所有学生 teacher.courses # 老师教授的所有课程 teacher.students[0].teacher [...]

Also posted in 数据库 | Leave a comment