Rails 上传
描述
文章来源:http://www.lycom.de/past/2007/6/21/attachment_fu20070621_213817/
swf 生成图表插件
描述
以下摘抄一段聊天记录:
路涵 (17976830) 11:34:18
= 有个flash开源网址。你自己看看。
如果你用的是flex 里面自带的组件 已经很强大了。有很棒的 图表功能。
还有adobe flex 对pdf 的支持也是一流的。
也就是说web打印,也很棒。
雪山飞猪 11:34:56
可是我测试一些flex的时候,好像要浏览器安装的flash解释器比较高版本呢。
另一个主角(5917292) 11:35:47
9.0
路涵 (17976830) 11:36:09
是了,flex3刚推出 要求的都是最新的。可以用swfobject来做swf嵌入
路涵 (17976830) 11:38:34
http://osflash.org/
另一个主角(5917292) 11:42:53
它自带很多报表的阿
Rails 建模工具
转自:http://lightyror.thegiive.net/
Friends for Sale 是一個在 FaceBook 上面排行前十的 Facebook App,最近他公佈他的資料,他是 Ruby on Rails 寫的。他上面有 60萬個會員,一個月 3億個 PV,並且以每個月 300%繼續成長。上個月流量是 3T,不過大部份都是圖片的支出。
架構是標準的 Rails Cluster,Front end 是 Nginx,Application Server 是 Mongrel。
他們學到課程如下
- 如果在Facebook 上面開發 APP,一開始就要想到 Scaling Problem(四周就衝到 1 m pv/day)
- Ruby on Rails can scale
- Performance Problem 是在 DB,你需要有很好的 DBA
- Cache 用的好,DB 不嫌少
他們使用
- Ruby on Rails
- CentOS 5
- Memcached
- MySQL 5.1
- Nginx
- Starling( Distribute Queue Server)
- Dr. Nics Magic Multi-Connections Gem ( Read Write 不同個 DB)
使用硬體
- 6台 4 core 的 App Server,每台 16 Mongrel Instance,並且每台都放 4GB Memcached 。
- 4
台 DB Server,上面配備 32GB 4 core servers with 4x 15K SCSI RAID 10 disks,使用
Master-Slave,用 Multi-Connection Gem 來達成 Read Write 不同 DB。
- 1 Starling Server
- 1 frontend server
Rails 2.0.2以后,原来的分页类paginate没作为基准类了,而是依赖plug in——will paginate。
will_paginate的代码写得不错,不过没支持Ajax,动手改造了一下,哈,效果还行(其实以前paginate的时候已经自己封装了一个方法用于处理ajax分页)。
改动很小,大家不用惊呼,主要改动如下:
/plugins/will_paginate/lib/will_paginate/view_helpers.rb
原代码
82行左右,加入传入参数:ajax_options = nil
def will_paginate(collection = nil, options = {}, ajax_options = nil)
原代码
95行左右,创建新renderer_class实例,加入以下调用参数
renderer = renderer_class.new collection, options, ajax_options, self
原代码
118行左右,renderer_class类构建,加入调用参数
def initialize(collection, options, ajax_options, template)
原代码
122行左右,增减一个实例变量,用于存储传入的ajax_options:
@ajax_options = ajax_options
原代码
187行左右,是输出页面翻页链接,增加对@ajax_options的判断:
if @ajax_options
@ajax_options[:url] = url_options(page) if @ajax_options[:url].nil?
@template.link_to_remote text, @ajax_options
else
@template.link_to text, url_options(page)
end
源代码
203行左右(因为上面加了几行,所以这里不准确,这里贴整段):
就是
def url_options(page)这里:
def url_options(page)
options = { param_name => page }
# page links should preserve GET parameters
options = params.merge(options) if @template.request.get?
options.rec_merge!(@options[:params]) if @options[:params]
options[:ajax] = true if !options.has_key?(:ajax) and !@ajax_options.nil?
return options
end
嗯,如何调用呢?
<%= will_paginate @favorites, { :param_name => :fav_page }, { :update => "favorites_list", :method => "get" } %>
什么,这不就和link_remote_to差不多嘛,嗯,差不多就拿去用吧!HuHu~~
PS一下:这个方法还没彻底测试过,需要大家测试测试。