rails

2024/4/13 8:48:22

Rails宝典之第五十四式: ruby-debug

介绍下使用[urlhttp://rubyforge.org/projects/ruby-debug/]ruby-debug[/url]来调试Rails程序安装ruby-debug: [code] sudo gem install ruby-debug -y [/code]修改environment.rb: [code] require ruby-debug [/code]我们在需要调试的代码里使用ruby-debug: [code] class Task…

每天一剂Rails良药之Stud Out Authentication

登录和认证常常是我们Rails系统所必需的,但经常不是程序的核心功能 我们可以在ApplicationController里定义logged_in?方法: [code] def logged_in?local_request? end helper_method :logged_in? [/code] 这样我们就可以在我们的Rails系统中的任何地方使用logg…

每天一剂Rails良药之Generate Documentation For Your Application

1,查看安装的gems [code] gem_server [/code] 或者gem_server -p 2600来指定端口,默认是8808 然后访问[url]http://localhost:8808[/url]即可看到本机安装的gems的文档 如果Rails是使用RubyGems安装的,也可以用这种方式看到2,生成…

Rails源码研究之ActionController:八,resources

深入了解一下ActionController的Resources--RESTful Rails1&#xff0c;ActionController的resources用来实现REST api&#xff0c;一个单独的resource基于HTTP verb(method)有不同的行为(action)&#xff0c;如: [code] map.resources :messagesclass MessagesController <…

Rails、MySQL的utf8中文乱码问题

又回到这个老问题&#xff0c;表单输入中文时数据库数据为乱码 解决方案: MySQL字符集采用utf8&#xff0c;创建数据库时也使用utf8&#xff0c;然后在application.rb里加上: [code] # application.rbbefore_filter :set_charsetbefore_filter :configure_charsetsdef set_char…

Rails源码研究之ActionView:三,form_helper

ActionView还带有许多helpers&#xff0c;让我们开发起来更快速更顺手&#xff0c;让我们来看看form中常用的一些helper方法form_helper.rb: [code] module ActionViewmodule Helpersmodule FormHelperdef form_for(object_name, *args, &proc)raise ArgumentError, "…

Rails宝典之第二十七式: CSS(Cross Site Scripting)

这次你将看到escape用户输入的任何HTML是多么重要假设博客上有一个comment表单&#xff0c;我们输入如下内容: [code] Testing <script>alert(test)</script> [/code] 提交我们的comment&#xff0c;如果浏览器弹出alert框&#xff0c;说明该博客没有对用户输入的c…

《Advanced Rails》译者序

翻阅本书的读者&#xff0c;相信您对Ruby on Rails并不陌生。Ruby on Rails的创造者DHH曾被2005年“全球开源大会”&#xff08;OSCON&#xff09;评为“年度最佳黑客”&#xff0c;《连线》杂志封面人物更将其标榜为“地球上最炙手可热的黑客”。而他与Dave Thomas合著的另一部…

每天一剂Rails良药之ssl_requirement

ssl_requirement插件让我们指定哪些action需要SSL访问&#xff0c;哪些不需要&#xff0c;并且帮我们redirect到相应的URL 安装好插件后&#xff0c;首先在application.rb里include该插件 [code] class ApplicationController < ActionControllerinclude SslRequirement end…

Rails宝典之第四十三式: Ajax with RJS

来看看RJS的应用我们首先要加上*.js文件&#xff0c;如修改application.rhtml: [code] <% javascript_include_tag :defaults %> [/code] 然后给Review的create方法加上js格式的应答: [code] def createreview Review.create!(params[:review])flash[:notice] "Th…

每天一剂Rails良药之Live Search

这次我们看看Rails里text_field的auto_complete&#xff0c;即Live Search。1&#xff0c;添加Recipe的Migration [code] class AddRecipes < ActiveRecord::Migrationdef self.upcreate_table :recipes do |t|t.column :name, :stringendenddef self.downdrop_table :recip…

每天一剂Rails良药之Keeping Track of Who Did What

今天我们看看怎样在数据库记录用户操作 db/migrate/002_add_audit_trails_table.rb [code] class AddAuditTrailsTable < ActiveRecord::Migrationdef self.upcreate_table :audit_trails do |t|t.column :record_id, :integert.column :record_type, :stringt.column :even…

Rails宝典七十六式:使用scope_out插件

[b]安装[/b] [code] ruby script/plugin install http://scope-out-rails.googlecode.com/svn/trunk/ [/code][b]使用例子[/b] [code] # models/task.rb scope_out :incomplete, :conditions > [complete?, false], :order > name# tasks_controller.rb tasks Task.fin…

Sun Ruby开发人员吃醋--- IronRuby开始支持Rails

继Rubinius第一个成功地运行Rails以来&#xff0c;John Lam在RailsConf上宣布IronRuby也能运行Rails了&#xff1a;几天前IronRuby针对一份未加改动的Rails拷贝火速完成了一些简单的工作。今天&#xff0c;我们打算在RailsConf会议上现场展示一下我们的进展。这对IronRuby来说是…

每天一剂Rails良药之Smart Pluralization

对英文网站&#xff0c;我们常常需要显示一个名词的复数形式。 而Rails就提供了一个称为Inflector的工具来计算该逻辑&#xff0c;并且ActionView有一个wrapper方法来处理常见的复数形式&#xff0c;如: [code] There are <% pluralize recipes.size, "recipe" %&…

每天一条Ruby小道之国际化

字符串和正则表达式与国际化关系紧密&#xff0c;utf-8可以让我们轻松搞定国际化问题 关于Unicode和utf-8入门&#xff0c;请看[urlhttp://hideto.iteye.com/blog/97803]深入了解字符集和编码[/url][b] Internally, a string is just a series of bytes. 在系统内部&#xff0c…

每天一剂Rails良药之Convert Your Sessions To ActiveRecord

我们看看config/environment.rb文件&#xff0c;其中有以下一段: [code]# Use the database for sessions instead of the file system# (create the session table with rake db:sessions:create)# config.action_controller.session_store :active_record_store [/code] Rai…

Rails宝典之第四十一式: 有条件的validation

默认每次save我们的Model时都会执行validation&#xff0c;但有时候我们希望有一定的条件触发时才执行validation: [code] # models/user.rb validates_presence_of :password, :if > :should_validate_password? validates_presence_of :country, : on > :create valid…

每天一剂Rails良药之Keep An Eye On Your Session Expiry

Rails的session默认为当用户关闭浏览器时终止 我们可以在config/environment.rb里设置它: [code] CGI::Session.expire_after 1.month [/code] 这需要一个插件&#xff0c;具体session设置请参考[url]http://wiki.rubyonrails.org/rails/pages/HowtoChangeSessionOptions[/url]…

每天一剂Rails良药之Distributing Your Application As One Directory T

我们可以发布包含Rails源代码以及所有plugins的Rails程序&#xff0c;这样我们部署或迁移的时候就不用每次安装一次Rails以及依赖库 [b]rake rails:freeze:gems[/b]表示把当前Gems安装的Rails Unpack到vendor/rails [b]rake rails:unfreeze[/b]则表示删除vendor/rails 第三方Ra…

Rails宝典之七十四式:复杂表单Part2

这次来看看如何使用JavaScript和RJS来动态添加和删除表单域&#xff1a;继续上次的例子&#xff0c;我们首先要在layout里引入Prototype.js [code] <% javascript_include_tag :defaults %> [/code]然后是新建project的页面模板&#xff1a; [code] <div id"task…

每天一剂Rails良药之tzinfo_timezone

[urlhttp://hideto.iteye.com/blog/81339]Dealing With Time-zones[/url]一文中介绍了Rails的TimeZone类&#xff0c;它可以用来转换不同时区的本地时间 今天看看tzinfo_timezone插件&#xff0c;它是对[urlhttp://tzinfo.rubyforge.org]TZInfo[/url]库的封装&#xff0c;我们需…

subdomain的设置与FF/IE下subdomain问题的解决

首先是确认域名服务商提供泛域名服务 然后添加一条A记录"*.youdomain.com"到你的服务器IP的映射 Rails下判断subdomain时用request.subdomains[0]即可得到子域名而在Firefox下cookie是按不同子域名存储的&#xff0c;所以需要在environment.rb里设置一下: [code] req…

每天一剂Rails良药之Cleaning Up Controllers with Post-back Actions

我们习惯与one-action-per-request&#xff0c;但是我们(特别是初学者)很容易被controller里的new()&#xff0c;create()&#xff0c;edit()和update()这些方法弄晕。 其实我们可以用一个方法来代替them all: [code] def editrecipe Recipe.find_by_id(params[:id]) || Recip…

Rails宝典之第四式: 将查询移位Model

沿着[urlhttp://hideto.iteye.com/blog/105774]Rails宝典之第三式: 通过关联做查询[/url]的脚步&#xff0c;我们可以进一步简化代码:[code] class Task < ActiveRecord::Basebelongs_to :projectdef self.find_incompletefind_all_by_complete(false, : order > created…

在FreeWheel一年半的小结

在FreeWheel工作有近一年半的时间&#xff0c;酸甜苦辣林林总总&#xff0c;基本上我最开始进入这家公司的目的都达到了。学到的东西&#xff1a; 1&#xff0c;Rails开发实践 2&#xff0c;视频广告行业知识 当初FreeWheel创始人来北京和我们开发工程师一一面谈&#xff0c;其…

Rails宝典之第二十五式: Sql injection

Sql injection是老问题&#xff0c;对如下查询: [code] def indextasks Task.find(:all, :conditions > "name LIKE %#{params[:query]}%") end [/code] 当用户输入的query条件加上单引号时很容易通过sql injection来攻击我们的Rails程序 而我们使用如下查询方式…

每天一剂Rails良药之Testing Across Multiple Controllers

Rails测试分三种: 1&#xff0c;关注于一个单独的Model的单元测试Unit test 2&#xff0c;关注于一个单独的Controller和它使用的models之间的交互的功能测试Functional test 3&#xff0c;关注story级的多个controllers的多个actions之间的交互的集成测试Integration test 今天…

每天一剂Rails良药之javascript_test

今天来看看javascript_test这个Rails plugin&#xff0c;它是对script.aculo.us库的单元测试框架的Rails风格测试封装 下载安装后&#xff0c;我们可以使用[b]ruby script/generate javascript_test foo[/b]来对public/javascripts/foo.js生成测试用的html文件 在测试用的html文…

Rails源码研究之ActionView:一,基本架构和ERB

先看源码再分析 1&#xff0c;action_view.rb [code] $:.unshift(File.dirname(__FILE__) "/action_view/vendor") require action_view/base require action_view/partialsActionView::Base.class_eval doinclude ActionView::Partials endActionView::Base.load_h…

Rails源码研究之ActionController:九,mime_responds

Rails从HTTP Accept header得到客户端需要的response format信息 默认的MIME types见mime_type.rb: [code]ALL Type.new "*/*", :allTEXT Type.new "text/plain", :textHTML Type.new "text/html", :html, %w( application/xhtmlxml )JS Typ…

Rails源码研究之ActionView:二,partials

partials是Rails模板重用的一项重要技术&#xff0c;让我们来读读partials.rb源码文件: [code] module ActionViewmodule Partialsdef render_partial(partial_path, local_assigns nil, deprecated_local_assigns nil)path, partial_name partial_pieces(partial_path)obje…

读Ruby for Rails的思考之Ruby的C扩展库

Ruby除了用Ruby写的扩展库以外&#xff0c;还有许多C写的扩展库&#xff0c;比如socket编程库/系统日志功能库/数据库驱动 这些库以.so或者.dll结尾&#xff0c;这也是我们require的时候不要使用.rb后缀的原因&#xff0c;比如 [code] require gdbm [/code]Ruby开源项目、扩展库…

每天一剂Rails良药之Processing Uploaded Images

今天来看看Rails怎样做Image的thumbnail 我们需要[urlhttp://rmagick.rubyforge.org]RMagick[/url]&#xff0c;它是ImageMagick/GraphicsMagick的Ruby API 我们先安装好ImageMagic/GraphicsMagick&#xff0c;然后安装RMagick: [code] sudo gem install rmagick [/code] 上传表…

每天一剂Rails良药之Manage a Static Site With Rails

对于静态站点我们可以利用Rails的cache来管理&#xff0c;如在controller中添加如下代码: [code] after_filter {|c| c.cache_page} [/code] 这样将会对该controller的所有action作缓存 注意我们不要对UserProfile等页面做缓存&#xff0c;只对对所有用户一样的内容做缓存

Rails宝典之第二十三式: counter cache

请看[urlhttp://hideto.iteye.com/blog/70236]Rails里的Magic Column Names[/url]这次就是讲用_count字段来缓存has_many的计数看Project和Task的例子: [code] <h1>Projects</h1><table> <% for project in projects %><tr><td><% link…

Rails源码研究之ActionView:四,javascript_helper

跟模板中JavaScript相关的helper方法定义文件有javascript_helper.rb/prototype_helper.rb/scriptaculous_helper.rb 其中javascript_helper与基本的JavaScript功能有关&#xff0c;prototype_helper与Ajax有关&#xff0c;而scriptaculous_helper与controls和visual effects有…

Rails宝典之第七式: layout详解

这次的视频很有用&#xff0c;详细解释了layout的用法 一般来说layout有如下五种&#xff1a; gobal layout&#xff0c;controller layout&#xff0c;shared layout&#xff0c;dynamic layout&#xff0c;action layout假设我们有一个views/projects/index.rhtml页面: [code…

每天一剂Rails良药之Validating Non-ActiveRecord Objects

对于非ActiveRecord对象的Validation&#xff0c;我们不能简单的include ActiveRecord::Validations 我们需要写一个module&#xff0c;如ValidatingNonARObjects/lib/validateable.rb [code] module Validateable[:save, :save!, :update_attribute].each{|attr| define_metho…

Rails源码研究之ActionController:七,filters

我们上次看过了ActiveRecord的callbacks&#xff0c;这次看看ActionController的filters [b]1&#xff0c;filter继承[/b] 先执行父类中的filter&#xff0c;再执行子类中的filter&#xff0c;如果父类中的filter返回false&#xff0c;则不执行子类中后续的filter[b]2&#xff…

使用Rails构建一个社会化网络站点

原文: [urlhttp://jimneath.org/2008/04/25/building-a-social-network-site-in-rails/]Building a Social Network Site in Rails[/url]本文不会手把手教你如何实现一个社会化网络站点&#xff0c;而是覆盖一些你可能认为有用的插件和事情。[colorred][b]社会化网络插件[/b][/…

Rails 简单的小例子 —— 新建一个购物网站

创建Shop项目 $ rails new shop 利用scaffold创建资源 $ rails generate scaffold production name:text price:float amount:integer 显示rails为资源分配的routes地址 $ rake routes | grep production DB Migrate $ bin/rails db:migrate RAILS_ENVdevelopment Start Server…

Rails宝典之第三十九式: 自定义field_error

我们先来看action_view/helpers/active_record_helper.rb里的一段代码: [code] module ActionViewclass Basefield_error_proc Proc.new{ |html_tag, instance| "<div class\"fieldWithErrors\">#{html_tag}</div>" }cattr_accessor :field_e…

每天一剂Rails良药之The Console Is Your Friend

我们要多使用[b]ruby script/console[/b]&#xff0c;在开发Rails程序时最好启动一个console窗口 我们来看看我们可以使用console干什么: [code] Person.find_by_first_name("Chad").emailCalendar.column_namesapp.get "/" app.follow_redirect! [/code] …

每天一剂Rails良药之Adding Support for Localization

今天来看看Rails对于不同locale的支持&#xff0c;我们使用Globalize插件 [code] ruby script/plugin install \http://svn.globalize-rails.org/svn/globalize/globalize/trunk [/code] 然后我们生成migration文件 [code] ruby script/generate globalize [/code] 然后运行 [c…

每天一剂Rails良药之acts_as_ferret

[urlhttp://ferret.davebalmain.com/trac/]Ferret[/url]是Ruby的文本搜索引擎&#xff0c;它基于[urlhttp://lucene.apache.org/]Apache Lucene[/url]安装Ferret非常简单: [code] gem install ferret [/code]Ferret是一堆C代码的Ruby代码封装&#xff0c;Ferret是针对Ruby的而不…

每天一剂Rails良药之tztime

以前我们这样使用TimeZone: [code] class TasksController < ApplicationControllerdef createtask account.tasks.build(params[:task])task.alert_at current_user.time_zone.local_to_utc(task.alert_at)task.save!end end [/code] 每次我们需要使用时区转换时我们都要…

每天一剂Rails良药之Easily Group Lists of Things

今天看看两个很好用的方法 1&#xff0c;Enumerable#group_by(): [code] <%employees Employee.find(:all).group_by{|employee|employee.title} %> <% employees.each do |title, people| %><h2><% title %></h2><ul><% people.each …

Rails宝典之第二十四式: Stack Trace

这次讲的是一个textmate plugin textmate_footnotes&#xff0c;用来当Rails程序页面出错时可以点击Stack Trace链接去到 Rails程序源码甚至Rails源码中。No use for no Mac guys. -_-!

Rails宝典之第八式: layout与content_for

如果我们想根据模板页面更改局部layout&#xff0c;使用content_for即可。 content_for允许模板页面代码放到layout中的任何位置。比如我们的Rails程序不同的页面有不同的css样式&#xff0c;我们可以在layout里留出位置: [code] <!DOCTYPE html PUBLIC "-//W3C//DTD X…

将gem变成plugin

有什么样的需求就有什么样的对策当vhost上的帐号没有gem install权限时&#xff0c;我们可以利用ruby、rails灵活多变的特性&#xff0c;将gem改为Rails插件来用首先本地安装gem&#xff0c;然后按照plugin目录结构创建init.rb和lib文件夹&#xff0c;然后将本地gem目录里的lib…

Rake Tutorial

[url]http://www.railsenvy.com/2007/6/11/ruby-on-rails-rake-tutorial[/url]Rake来自MakeMake将编译过而且没改动过的源文件与改动过的源文件区分开来&#xff0c;做增量buildRake不管编译这茬事Rake使用Ruby语言Rails里的rake任务放在lib/tasks目录例子:lib/tasks/something…

每天一剂Rails良药之Automatically Save a Draft of a Form

今天我们来看看Gmail里的Ajax自动保存草稿在Rails里的实现首先在layout里引入Javascript标签 [coce] <% javascript_include_tag :defaults %> [/code]posts_controller.rb [code] def newif request.get?post session[:post_draft] || Post.newelsepost Post.create(…

PHP、CakePHP哪凉快哪呆着去

因为公司经常有PHP的外包项目做&#xff0c;客户指定使用PHP来开发&#xff0c;而我是Java组的&#xff0c;没做过PHP项目&#xff0c;心生好奇&#xff0c;趁今晚有空来摸摸PHP。[urlhttp://hideto.iteye.com/blog/106087]装了PHPeclipe和xampp[/url]&#xff0c;google到[url…

利用Selenium on Rails做Rails集成测试

步骤实在是简单:1, 新建Rails程序 [code] rails myproject [/code] 然后修改数据库配置文件database.yml2, 安装Selenium on Rails插件 [code] ruby script/plugin install http://svn.openqa.org/svn/selenium-on-rails/selenium-on-rails [/code]3, 生成selenium测试sel文件 …

每天一剂Rails良药之Make your URLs Meaningful(and pretty)

这篇内容没什么价值&#xff0c;《Agile Rails》里的Routing Request一节讲述的比较详细了 [code] ActionController::Routing::Routes.draw do |map|map.connect :controller/service.wsdl, :action > wsdmap.connect :controller/:action/:idmap.connect :user, :controll…

Rails宝典之第五十六式: Logger

Rails在controller里自带了logger&#xff0c;我们可以用来做debug: [code] def showcart current_cartlogger.debug "Hello world! #{cart.to_yaml}"# debug, info, warn, error, fatal end [/code]我们可以在environment.rb里配置Logger的消息格式: [code] class …

HTA,XUL技术的鼻祖

近几年来&#xff0c;XUL方兴未艾&#xff0c;以XAML(WPF)&#xff0c;XUL等新技术&#xff0c;代表着一种以标记语言和脚本构造桌面应用程序的潮流&#xff0c;但是有一项Microsoft的技术却一直默默无名&#xff0c;这就是HTA技术&#xff0c;甚至有时候&#xff0c;它也背上了…

每天一剂Rails良药之Use Ajax to Trim Fast, Static Pages

今天让我们看看怎样使用Rails和Ajax得到静态页面。 看下面这个页面: [code] <ul><li><div id"product-1" class"product-overview"><span class"title">Learn to Program (Chris Pine)<% link_to_remote "detai…

Nested Layout Plugin for Rails

install: [code] ./script/plugin install svn://rubyforge.org/var/svn/nested-layouts/trunk/nested_layouts [/code]doc: [url]http://nested-layouts.rubyforge.org/[/url]Anyway, its a little ugly.

读Ruby for Rails的思考之require与load

首先看看代码: reqdemo.rb [code] puts "This is the first (master) program file." require "requiree.rb require "requiree.rb puts "And back again to the first file." [/code] loaddemo.rb [code] puts "This is the first (master…

Rails宝典之第二十六式: 防止Hacker入侵

假设我们的users表如下: [code] create_table "users", :force > true do |t|t.column "name", :stringt.column "admin", :boolean, :default > false, :null > false end [/code] 看看我们都创建用户的action: [code] def createuser…

试用Rails开源小论坛-Beast

[urlhttp://beast.caboo.se/]Beast[/url] is a small, light-weight forum in Rails with a scary name and a goal of around 500 lines of code when were done.[urlhttp://beast.caboo.se/forums/1/topics/381]Getting Started with Beast:[/url] 1&#xff0c;下载源码 [co…

每天一剂Rails良药之Cheap and Easy Theme Support

你可能需要给你的站点用户添加一个主题样式支持。 让我们看看用Rails实现该功能是多简单。1&#xff0c;给User模型添加类型为string的style字段2&#xff0c;修改app/views/layouts/application.rhtml [code] <html><head><% stylesheet_link_tag(session[:use…

每天一剂Rails良药之http_authentication

今天我们来看看Rails的HTTP Basic认证插件http_authentication 安装该插件后我们写一个TestController来看看效果: [code] class TestController < ApplicationControllerUSER_NAME, PASSWORD "dhh", "secret"before_filter :authenticate, :except &g…

rails中--a链接的使用

在Rails中创建a链接&#xff0c;需要使用link_to方法。该方法的语法为&#xff1a; link_to(body, url, options {}) 其中&#xff0c;body参数指定链接的显示文本&#xff0c;url参数指定链接的目标地址&#xff0c;options参数为可选项&#xff0c;用于指定链接的其他属性…

每天一剂Rails良药之Creating a Custom Form Builder

有时候我们希望我们的表单拥有一致的显示风格&#xff0c;今天我们就看看用Rails怎样创建一个Helper来自定义表单。1&#xff0c;实现自己的FormBuilder 在app/helpers/application_helper.rb里加入以下代码: [code] class TabularFormBuilder < ActionView::Helpers::FormB…

Rails程序开发的最大问题是代码规范

使用Rails开发大型复杂B2B应用一年了&#xff0c;这个项目目前开发人员达到近20人 现在感觉最痛苦的事情就是大家没有遵循统一的代码规范 我一直建议PM要设立一个项目架构师的角色&#xff0c;来统一大家的代码规范&#xff0c;但是PM不听 因为Ruby这种动态语言太灵活&#xff…

Rails宝典七十二式:添加自己的Environment

Rails自带了development、test和production三个environments&#xff0c;而我们可以轻松添加自己的environment&#xff1a; 1&#xff0c;修改database.yml [code] staging:adapter: mysqldatabase: store_staginguser: rootpassword: host: localhost [/code]2&#xff0c;添…

Rails宝典之第四十二式: with_options

Rails里有些方法使用一个Hash作为最后一个可选的参数&#xff0c;如果对多个方法有同样的选项&#xff0c;我们可以使用with_options来减少冗余: [code] # models/user.rb with_options :if > :should_validate_password? do |user|user.validates_presence_of :passwordus…

千呼万唤始出来——InfoQ中文站

<iframe align"top" marginwidth"0" marginheight"0" src"http://www.zealware.com/csdnblog01.html" frameborder"0" width"728" scrolling"no" height"90"></iframe>经过漫长的…

Ruby完全读书指南

随着Ruby和Rails的不断升温&#xff0c;可以预见很快就会有更多阐述某一细部的技术书籍出现&#xff0c;各种经验与模式也会结集出版。也许不久之后&#xff0c;就再也没人能像作者这样给出一份“Ruby完全读书指南”了。所以&#xff0c;能读到这样一篇文章&#xff0c;就当做是…

初涉Rails

这个月的程序员的技术专题是Ruby on Rails&#xff0c;两篇主要的介绍文章都是railscn的站长Fikko写的。之前两个月吧&#xff0c;我已经在bjug里面注意到这个玩意&#xff0c;但是苦于一直未能找到时间做点研究&#xff0c;加之自身对一门新语言总是心怀尊敬而不愿偶习之&…

lighttpd真垃圾啊

使用lighttpdfcgi跑Rails程序&#xff0c;文件上传会silently failed&#xff0c;任何报错都没有 [url]http://trac.lighttpd.net/trac/ticket/338[/url] 我研究了一下午&#xff0c;未果。 大家有没有解决方法&#xff1f;

创业公司需要怎样的技术

【编者按】本文作者钟超曾开发过Android应用《爱提醒》和丁香园《用药助手》&#xff0c;现为小恩爱的联合创始人。是一个典型的Geek、ACMer。以下这篇文章是他创业半年来的一些理解和体会。 既然是创业团队&#xff0c;想必初始团队成员不会很多&#xff0c;但基本上至少会有…

poj_1847 Tram

Tram Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 7135 Accepted: 2583 题目链接&#xff1a;http://poj.org/problem?id1847 Description Tram network in Zagrebconsists of a number of intersections and rails connecting some of them. Inevery …

Rails宝典之第五十八式: 怎样写Generator

来看看怎样写自己的Generator吧首先运行: [code] ruby script/generate [/code] console中的输出可以看到Rails默认的generate: [code] Installed GeneratorsBuiltin: controller, integration_test, mailer, migration, model, observer, plugin, resource, scaffold, scaffol…

Rails宝典七十七式:禁止JavaScript时的Destroy

Rails里一般我们这样Destroy: [code] <% link_to "Destroy", project_path(project), :confirm > "Are you sure?", :method > :delete %> [/code] 但是当客户端浏览器禁止JavaScript时就呆了&#xff0c;没有confirm&#xff0c;直接给删除了…

Rails宝典之七十五式:复杂表单Part3

前两次学习了动态添加和删除project的多个tasks&#xff0c;这次来看看如何编辑project其他页面不变&#xff0c;但是_task.rhtml改了&#xff1a; [code] <!-- projects/edit.rhtml --> <% form_for :project, :url > project_path(project), :html > { :metho…

每天一剂Rails良药之Extracting Test Fixtures From Live Data

Rails做单元测试时&#xff0c;我们自己手动去创建所有的fixtures会是个噩梦&#xff0c;有没有什么好的方案呢? 我们可以利用数据库里已有的数据&#xff0c;写一个rake tast来把数据库的数据复制出来到YAML文件里: CreateFixturesFromLiveData/lib/tasks/extract_fixtures.r…

rbi技术选型

目标&#xff1a;力求实现起来简单高效性能好[b]项目host[/b] [urlhttp://code.google.com/p/rbi/]rbi[/url][b]BI Server[/b] 核心业务组件&#xff1a;C 网络层&#xff1a;TCP Socket 数据传输格式&#xff1a;[urlhttp://code.google.com/p/protobuf/]protobuf[/url] Metad…

Rails 利用will_paginate进行异步分页

一、 利用现有的will_paginate模块 will_paginate: https://github.com/mislav/will_paginate 引入Gem包 gem will_paginate, ~> 3.1.0 HTML: <% will_paginate posts %> Controller: productions Production.paginate(:page > params[:page] || 1, :per_…

每天一剂Rails良药之Rendering CSV From Your Actions

有时候我们需要输出Comma Separated Values(CSV)等各种形式的输出来满足用户的需要: [code] class ExportController < Application ontrollerdef orderscontent_type if request.user_agent ~ /windows/iapplication/vnd.ms-excelelsetext/csvendCSV::Writer.generate(out…

Rails宝典之第五式: 使用with_scope

这次来介绍with_scope方法的使用。继续前面的例子&#xff0c;我们希望只取得complete为false的前20条数据&#xff0c;我们可以给find_incomplete方法添加一个Hash参数&#xff0c;然后使用with_scope将 额外的参数附加到我们的查询方法里: [code] class Task < ActiveReco…

Rails宝典之第十三式: Model放在Session里的危险

上次我们说到current_user时不要将user对象放在session里&#xff0c;而只放user_id&#xff0c;然后每次去数据库取user对象。 有人不理解&#xff0c;这次的视频给出了答案: [code] class UsersController < ApplicationControllerdef preparesession[:user] User.find(:…

Rails宝典之第五十五式: 让视图干净些

看一个Shopping Cart的例子: [code] Full Price: <% if line_item.unit_price 0 %> <td class"price">FREE</td> <% else %> <td class"price"><% number_to_currency(line_item.unit_price*line_item.quantity) %>…

在Rails里使用ReCaptcha添加验证码

1&#xff0c;去[url]http://recaptcha.net/[/url]sign up&#xff0c;获得pub key和priv key 2&#xff0c;安装recaptcha gem [code] gem install --source http://www.loonsoft.com/recaptcha/pkg/ recaptcha [/code] 3&#xff0c;在environment.rb里设置key [code] requir…

每天一剂Rails良药之Lightning-Fast JavaScript Auto-completion

Gmail中你输入收信人地址时会自动搜索并提示&#xff0c;速度很快&#xff0c;因为Gmail不是每次都从后台搜索&#xff0c;而是一开始就 把地址加载到页面中&#xff0c;然后在页面中匹配并搜索。让我们看看怎样在Rails里实现它。1&#xff0c;准备搜索数据 我们创建app/contro…

全局变量往哪儿放?

Rails有乐观锁悲观锁&#xff0c;但是悲观锁它不支持整个table的锁啊 好吧&#xff0c;那就SQL吧&#xff1a;ActiveRecord::Base.connection.execute("LOCK TABLE XXX WRITE")ActiveRecord::Base.connection.execute("UNLOCK TABLES") 在Console下试了试&…

RSpec测试Rails程序快速上手

1&#xff0c;安装 [code] gem install rspec ruby script/plugin install svn://rubyforge.org/var/svn/rspec/tags/CURRENT/rspec ruby script/plugin install svn://rubyforge.org/var/svn/rspec/tags/CURRENT/rspec_on_rails ruby script/generate rspec [/code]2&#xff…

Rails宝典八十七式: 生成RSS feeds

看看Rails2.0生成RSS feeds有多简单: routes.rb: [code] map.resources :articles [/code]app/controllers/articles_controller.rb: [code] def indexarticles Article.find(:all) end [/code]app/views/index.html.erb: [code] <% link_to "RSS Feed", formatt…

Logger::ShiftingError的解决方法

cron job如果加载rails环境来使用Logger&#xff0c;这样就有多个进程操作Logger&#xff0c;在Logger做Shifting时会有异常&#xff0c;比较取巧的解决方法就是在environment.rb里加一个常量判断(sliu大人的建议)&#xff1a;if !$CRON_JOB_STATUS $LOG Logger.new(File.joi…

Rails宝典之第二十二式: eager loading

看这个页面代码: [code] <% for task in tasks %><% link_to task.name, task_path(task) %> in <% task.project.name %> <% end %> [/code] 上面的代码对每个task对象&#xff0c;取得project的name属性并显示&#xff0c;看看log: [code] Project L…

Rails宝典之第六十六式:自定义Rake任务

Rake的强大之处你要自己使用才有切身体会。我们经常用rake db:migrate来做数据库迁移 我们还可以使用rake -T来列出可得到的rake任务让我们在store这个Rails程序中创建一个自己的Rake任务 我们创建store/lib/tasks/ryanb.rake: [code] task :greet doputs "Hello World!&q…

Rails宝典之第四十式: 视图里的block

这次介绍视图页面block的helper方法我们可以在application_helper里定义一个admin_area helper方法: [code] module ApplicationHelperdef admin_area(&block)if admin?concat content_tag(:div, capture(&black), :class > admin), block.bindingelsenilendend en…

每天一剂Rails良药之upload_progress

今天来看看使用upload_progress插件监听文件上传status以及创建AJAX上传progress bar Requirements:[url]http://sean.treadway.info/articles/2005/07/18/upload-progress-checklist[/url]安装好该插件以及Requirements后&#xff0c;我们就可以在controller里使用了: [code] …

Rails宝典之六十九式: Markaby in Helper

看一个打印error_message相关的html的helper: [code] module ApplicationHelperdef simple_error_message_for(object_name)object instance_variable_get("#{object_name}")return if object.errors.empty?result <div id"error_message">result…

每天一剂Rails良药之token_generator

这个插件让我们给使用它的当前class添加一个使用MD5生成的token [code] class Invitation < ActiveRecord::Baseinclude TokenGeneratorbefore_create :set_token endclass ImperialInvitation < ActiveRecord::Baseinclude TokenGeneratorbefore_create :set_tokenpriva…

Hyper Estraier与acts_as_searchable实践

acts_as_searchable是一个Rails插件&#xff0c;它依赖于Hyper Estraier这个独立的搜索引擎所提供的索引和搜索服务1&#xff0c;安装Hyper Estraier 去[url]http://hyperestraier.sourceforge.net/win/[/url]下载Binary Packages for Windows&#xff0c;将hyperestraier-1.4.…

Rails宝典之第六式: Symbol to Proc

这次来介绍ActiveSupport里对Symbol的扩展&#xff0c;我们先来看active_support/core_ext/symbol.rb文件: [code] class Symbol# Turns the symbol into a simple proc, which is especially useful for enumerations. Examples:## # The same as people.collect { |p| p.name…

Rails link_to 和 button_to 的区别

link_to & button_to link_to 和 button_to 其实还是存在很大区别的&#xff0c;我们可以查看一下源代码。 源代码&#xff1a; https://github.com/rails/rails/blob/master/actionview/lib/action_view/helpers/url_helper.rb def link_to(name nil, options nil…

Flex集成Rails

Adobe发布了Rails与Flex集成方案: [urlhttp://code.google.com/p/rubyonrails-ria-sdk-by-adobe/]rubyonrails-ria-sdk-by-adobe[/url]其中对Flex和Rails集成给出了几个例子&#xff0c;这里来与大家分享下最简单的xml交互方式 这种方式对后台服务端语言实际上没有限制&#xf…

Rails 入门 —— 新建一个blog程序

IDE Aptana Studio 下载地址&#xff1a; http://www.aptana.com/products/studio3/download.html 安装EGit插件 http://download.eclipse.org/egit/updates Rails Migration Data Types Hello Rails 1. 创建Blog程序 $ rails new blog2. 创建控制器 controller 和动…

Rails宝典之第五十三式: Handling exceptions

当我们访问错误的url时&#xff0c;development模式下会显示错误栈页面 但如果我们想测试production模式下的出错页面&#xff0c;我们应该怎样做呢?可以发现&#xff0c;development.rb和production.rb里分别设置了config.action_controller.consider_all_requests_local为 t…

Rails宝典之第四十四式: Debugging RJS

遇到RJS或Ajax的bug很难调试&#xff0c;这次就来看看我们应该怎样调试RJS的bug遇到RJS错误&#xff0c;一般可以按如下步骤检查: 1&#xff0c;检查*.js文件是否都include进来 2&#xff0c;检查页面源代码&#xff0c;看看RJS生成的JavaScript是否正确 3&#xff0c;检查deve…

Rails宝典七十九式:生成Named Routes

我们有如下三个近乎一样的named routes&#xff1a; [code] # routes.rb ActionController::Routing::Routes.draw do |map|map.about_company about/company, :controller > about, :action > companymap.about_company about/privacy, :controller > about, :action…

【IronRuby】细谈Ironruby与.NET的互操作性

作者: Ray Linn 最后更新&#xff1a;2010/07/19[b]引用.NET的Assembly[/b] 除了我们前面提到的require <PartialName> 和require <Strong name>外&#xff0c;Ironruby 1.0发布的时候&#xff0c;还提供了一个新的函数load_assembly&#xff0c;这个函数的参数为A…

ASP.NET MVC与RAILS3的比较

进入后Web年代之后&#xff0c;MVC框架进入了快速演化的时代&#xff0c;Struts等垂垂老矣的老一代MVC框架因为开发效率低下而逐渐被抛弃&#xff0c;新一代的MVC则高举敏捷的大旗&#xff0c;逐渐占领市场&#xff0c;其中的代表有Rails (ruby), .NET MVC (.NET), Django (Pyt…

RAILS自定义快速安装脚本

为了一劳永逸的快速安装RAILS,或者其他常见的ruby包,写了一个小dos脚本. 你可以自己指定别的服务器在菜单里.修改pack变量也可以用来安装别的包. 不过主要还是对rails来用吧. [code] ECHO OFF :BEGIN CLS ECHO. ECHO SELECT SORUCE OF RUBY GEMS ECHO. ECHO. ECHO 1RUBY FORG…

每天一条Ruby小道之Symbol

在Ruby中symbol是Symbol类的实例。symbol的语法为一个冒号后面接一个标识符。symbol就像一个字符串&#xff0c;它表示了一个字符序列。它不像字符串&#xff0c;每个symbol只有一个实例(和Fixnum一样)。因此&#xff0c;有一个内存或 性能问题需要弄清楚。例如&#xff0c;在下…

每天一剂Rails良药之Debugging Ajax

1&#xff0c;Rails1.1及以上版本默认会在config/environments/development.rb里加上下列设置: [code] config.action_view.debug_rjs true [/code] 这样&#xff0c;当你使用RJS时&#xff0c;如果发生异常&#xff0c;则会有一些非常有用的JavaScript alerts。2&#xff0c;…

每天一剂Rails良药之exception_notification

[urlhttp://hideto.iteye.com/blog/81144]每天一剂Rails良药之Getting Notified of Unhandled Exceptions[/url]中也提到了Exception Notification插件 该插件在production环境下&#xff0c;当程序出错时会给recipient发送notification邮件Exception notification只会在访问的…

REST(Representational State Transfer) 介绍

REST(Representational State Transfer)是一种针对网络应用的设计和开发方式&#xff0c;可以降低开发的复杂性&#xff0c;提高系统的可伸缩性。REST提出了一些设计概念和准则&#xff1a; 网络上的所有事物都被抽象为资源&#xff08;resource&#xff09;; 每个资源…

每天一剂Rails良药之continuous_builder和deadlock_retry

continuous_builder是一个Rails与Subversion集成的持续集成工具&#xff0c;参考[url]http://hideto.iteye.com/blog/80873[/url] deadlock_retry允许数据库驱动重试死锁的事务&#xff0c;它已经自动集成到ActiveRecord&#xff0c;我们不用更改任何代码就拥有该插件的重试事务…

每天一剂Rails良药之atom_feed_helper

前面的一篇文章[urlhttp://hideto.iteye.com/blog/81579]每天一剂Rails良药之Syndicate Your Site With RSS[/url]中我们看了怎样手动创建RSS 今天我们来看看Rails开发组提供的一个atom_feed_helper插件&#xff0c;它使得创建atom feeds更容易首先安装atom_feed_helper插件 [c…

了解RubyGems

1, 什么是Gem? gem是Ruby程序或库的打包方式&#xff0c;比如[b]gem install rails[/b]就是安装rails程序的gem 我们可以拿gem和war、jar类比 但是gem还担当了Java里maven的角色&#xff0c;就是一个库管理工具&#xff0c;可以远程下载和安装Ruby库2, 常用gem命令 gem build …

method_missing了解10件事

我可不是标题党&#xff0c;题目是原作者起的 [urlhttp://www.thirdbit.net/articles/2007/08/01/10-things-you-should-know-about-method_missing/]10 things you should know about method_missing[/url]1&#xff0c;method_missing是一个Ruby内核方法2&#xff0c;Rails使…

反思Spring:由Ruby on Rails想到的

众所周知&#xff0c;RoR里面的指导原则有&#xff1a; 第一条是较小的软件&#xff0c;这意味着你编写较少的程序行。程序小就能加速开发&#xff0c;错误也较少&#xff0c;使得程序较容易理解、维护和增强。对编写较小程序做出贡献的Ruby的一个特性就是它假设该架构本身能够…

每天一剂Rails良药之Live Preview

像蛙眼等有时候需要给用户提供预览查看&#xff0c;今天我们就来看看利用Rails和Prototype快捷的提供Live Preview功能。1&#xff0c;在layout里加入prototype.js 如app/views/layouts/standard.rhtml: [code] <html><head><% javascript_include_tag "pr…

什么是Ruby on Rails(简称ROR)

作者&#xff1a;Curt Hibbs 日期&#xff1a;10/13/2005译者&#xff1a;吴海燕 日期: 7/12/2005Ruby on Rails Ruby on Rails是一套用Ruby写的Web应用程序框架&#xff0c;Ruby是一个与Python,Smalltalk和Perl相似的动态语言。 本文内容&#xff1a; 什么是Ruby on …

第29回 软件质量度量

<iframe align"top" marginwidth"0" marginheight"0" src"http://www.zealware.com/46860.html" frameborder"0" width"468" scrolling"no" height"60"></iframe>软件产品质量度…

每天一剂Rails良药之Creating Dynamic Test Fixtures

Rails的fixture文件在传递给YAML解析之前先用ERB解析&#xff0c;这样一来我们就可以使用Ruby代码动态生成测试数据&#xff0c;而不用一条数据一条数据的写了: [code] <% 1.upto(50) do |number| %> child_post_<% number %>:id: <% number 3 %>title: Thi…

每天一剂Rails良药之Write Code That Writes Code

很不幸我的2006-4-11版本的Rails Recipes的这章内容部分缺失 太晚了又没有找到更新的版本 记为not finished.

Rails快速上手

[b]Windows下安装Ruby和InstantRails[/b] 去[url]http://instantrails.rubyforge.org/wiki/wiki.pl[/url]下载InstantRails并解压到一个目录 由于InstantRails自身就包含了Ruby解释器&#xff0c;所以不用另外再下载Ruby的Windows安装程序 运行InstantRails.exe&#xff0c;提示…

Twitter架构学习

原文&#xff1a;[urlhttp://www.highscalability.com/scaling-twitter-making-twitter-10000-percent-faster]Scaling Twitter: Making Twitter 1000 Percent Faster[/url]Twitter是目前为止最大的Ruby on Rails应用&#xff0c;几个月间页面点击由0增长到几百万&#xff0c;现…

Rails源码研究之ActionView:五,prototype_helper

Rails的Ajax是依赖于prototype库的&#xff0c;我们来看看ActionView对prototype的一些方法调用的封装 源文件为prototype_helper.rb&#xff0c;其中包括RJS的update_page调用的JavaScriptGenerator类的定义: 1&#xff0c;link_to_remote是简单的异步url请求 [code] def link…

你欠自己一个老学究的身份

我喜欢看电视剧《豪斯医生》&#xff0c;我最喜欢的情节是他设法诊断一个人的病情时不是根据获悉这种罕见的病症&#xff0c;而是根据对身体各部位的运作的整体的了解&#xff0c;从而定位出真正的问题所在。 我发现这个事可以和一些极其重要的、但往往被很多编程人员忽视的工…

权限控制[2] CanCan + Rolify + Devise

在model/ability.rb中定义权限 Reference: Defining Abilities 基础权限 class Abilityinclude CanCan::Abilitydef initialize(user)user || User.new # guest user (not logged in)if user.admin?can :manage, :allelsecan :read, :allendend end 自定义权限集合 def i…

IronRuby: Rails-Like MVC without Rails

IronRuby是.NET下的一个Ruby实现&#xff0c;此外还有Ruby.net这一开源项目&#xff0c;二者的主要区别是IronRuby利用了Microsoft最新推出的DLR&#xff0c;而ruby.net则是完全利用原有的CLR实现的&#xff0c;二者的比较可以参考lam John的相关文章。目前IronRuby (SVN r118)…

纪念javaeye被挂的一天

原来吹嘘多牛B的linuxrails也是轻易被高手给hacker了。 [img]/upload/attachment/96132/f8d99a2b-5f28-35d0-9db4-a39dfc558fa6.bmp[/img] [img]/upload/attachment/96133/e4b2947b-cbd5-3002-9e31-383469e7480c.bmp[/img]

第一本django中文书问世了

本书讲述如何用Python框架Django构建出强大的Web解决方案&#xff0c;本书讲解了使用新的Django 1.0版的各种主要特性所需要的技术、工具以及概念。.全书分为12章和6个附录&#xff0c;内容包括&#xff0c;Django Python实战&#xff0c;Django速成&#xff1a;构建一个Blog&a…

【工作点滴】用VS 2010 编译 Ruby 1.9.1

关键字&#xff1a;ruby 1.9.1 Visual studio 2010 MSVC 1600 download compileVC 2010增加了许多对C99的支持&#xff0c;编译许多GNU的项目会方便许多&#xff0c;考虑到以后编译ruby扩展的方便&#xff0c;所以重新用VC 2010 (1600) 把ruby编译了一遍。编译Ruby需要一些第三…

部署之使用 mina 来部署 Ruby on Rails 应用之基础

1. mina是什么&#xff1f; 开发完了网站要上线或正在开发&#xff0c;要测试&#xff0c;那得把应用部署到线上&#xff0c;也就是互联网上&#xff0c;那就是真实环境&#xff0c;客户或用户能访问到的环境。公司的测试人员也能在上面测试&#xff0c;你总不能用你的localhos…

將Redmine架在sub-URI

將Redmine架在sub-URI參考HowTo Install Redmine in a sub-URI及Defect #32318&#xff0c;在config/environment.rb檔案的最底下加上&#xff1a; ActionController::Base.relative_url_root RedmineApp::Application.routes.default_scope Redmine::Utils::relative_url_ro…

RubyGems 镜像 - 淘宝网

原文地址&#xff1a; http://ruby.taobao.org为什么有这个&#xff1f; 由于国内网络原因&#xff08;你懂的&#xff09;&#xff0c;导致 rubygems.org 存放在 Amazon S3 上面的资源文件间歇性连接失败。所以你会与遇到 gem install rack 或 bundle install的时候半天没有响…

程序员失业后应做的五件事

当金融危机席卷全球市场的时候&#xff0c;解雇通知书就象雪片一样飞出。虽然IT职业保障令人担忧&#xff0c;但是某些人还是能在失业后找到新的就业机会。   Robert Fleming在两个月前失去了他在渥太华某软件公司的IT管理员工作&#xff0c;他花了3个星期的时间来调整自己的…

rials中,打印日志

在 Rails 中&#xff0c;你可以使用 logger 对象来打印日志。logger 对象是一个全局的 Ruby 对象&#xff0c;你可以在任何地方使用它来打印日志。 以下是一些常用的 logger 方法&#xff1a; - logger.debug: 打印调试信息。- logger.info: 打印一般信息。- logger.warn: 打…

Windows 下的redmine搭建

转载自&#xff1a;http://blog.sina.com.cn/s/blog_5007d1b10100qmnk.html 由于项目需要&#xff0c;需要使用RedMine。 而RedMine在linux搭建教容易&#xff0c;同时&#xff0c;在windows2003下&#xff08;不使用IIS&#xff09;也教容易搭建&#xff0c;具体的安装步骤&…

读Ruby for Rails的思考之DSL

DSL是设计用来在某一领域完成特殊任务的语言&#xff0c;而不是一般目的的编程&#xff0c;DSL的指令集相对较窄 从某方面来看&#xff0c;Rails就像一个用Ruby写的DSL&#xff0c;它的领域是交互式数据库驱动的Web程序对于如下代码 [code] has_many :editions [/code] 左边是一…

Rails宝典之第五十七式: Select or Create

看一个选择Category或从text_field创建新Category的例子: [code] <!-- views/products/_form.rhtml --> <p><label for"product_category_id">Category:</lable><br/><% f.collection_select :category_id, Category.find(:all), :…

程序员给自己五年前的10个建议

自从踏入这条道路以后&#xff0c;我犯过错&#xff0c;挣扎过&#xff0c;失败过。虽然走了很多弯路&#xff0c;但经过几年的努力奋斗&#xff0c;也小有收获。目前拥有25名员工&#xff0c;在最好的一个月募集了730万美金。我常常幻想&#xff0c;如果时光倒流&#xff0c;回…

Ruby On Rails 路径穿越与任意文件读取漏洞(CVE-2018-3760、CVE-2019-5418)

Ruby On Rails 路径穿越与任意文件读取漏洞&#xff08;CVE-2018-3760、CVE-2019-5418&#xff09; "你知道深爱是什么感觉吗?" "就像房间突然黑了&#xff0c;我不是去找灯而是去找他。"漏洞概述: Ruby on Rails&#xff08;或者简称 Rails&#xff09;…

(转)是时候了,前端架构师

最近对Web前端有很多想法&#xff0c;刚好看到这篇文章&#xff0c;跟我想法不谋而合&#xff0c;所以翻译出来与大家分享。许久没翻译了&#xff0c;里面多少还是有些我没能完全理解&#xff0c;意译过来&#xff0c;如果错误&#xff0c;请务必指出和修改&#xff0c;谢谢。 …

Rails 开发与 Java 编程的比较

Ruby on Rails 开发和 Java™ 开发有着本质的不同。在 跨越边界 系列的最后一期中&#xff0c;Bruce Tate 将概述使用 Rails 从头开发一个复杂、可伸缩的 Web 站点时所发现的二者的主要差异。 Rails 开发人员常常把 Java 开发人员看作是沉闷而劳碌的老古董。而 Java 崇拜者则常…

MVC框架视图及页面跳转分析-模板技术

<iframe align"top" marginwidth"0" marginheight"0" src"http://www.zealware.com/csdnblog01.html" frameborder"0" width"728" scrolling"no" height"90"></iframe>模板技术是…