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

看一个打印error_message相关的html的helper: module ApplicationHelper def simple_error_message_for(object_name) object = instance_variable_get("@#{object_name}") return if object.errors.empty? result = ...
by hideto 2011-05-26 浏览 (764) 回复 (0) 群组: 每天一剂Rails良药

Rails宝典之六十八式:OpenID Authentication

使用ruby-openid这个gem和open_id_authentication插件做OpenID认证 sudo gem install ruby-openid ruby script\plugin install open_id_authentication rake open_id_authentication:db:create # routes.rb map.open_id_com ...
by hideto 2011-05-26 浏览 (849) 回复 (0) 群组: 每天一剂Rails良药

Rails宝典之六十七式:restful_authentication

restful_authentication是Rails的一个认证插件,基于REST方式,适合RESTful的geek 安装: ruby script/plugin install http://svn.techno-weenie.net/projects/plugins/restful_authentication/ ruby script/generate authenticated use ...
by hideto 2011-05-26 浏览 (994) 回复 (0) 群组: 每天一剂Rails良药

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

Rake的强大之处你要自己使用才有切身体会。 我们经常用rake db:migrate来做数据库迁移 我们还可以使用rake -T来列出可得到的rake任务 让我们在store这个Rails程序中创建一个自己的Rake任务 我们创建store/lib/tasks/ryanb.rake: task :greet do puts "Hello World!" end task ...
by hideto 2011-05-26 浏览 (1606) 回复 (0) 群组: 每天一剂Rails良药

Rails宝典之第六十五式: Stopping spam

这次要介绍的是使用Akismet来预防垃圾comment akismetor是作者写的一个插件:http://svn.railscasts.com/public/plugins/akismetor 使用akismetor需要如下几步 1,给comments表添加几个字段: add_column :comments, :user_ip, :string add_column :comments, ...
by hideto 2011-05-26 浏览 (2245) 回复 (1) 群组: 每天一剂Rails良药

Rails宝典之第六十四式: 自定义Helper模块

Rails默认为每个controller指定一个helper,所有的helper都放在app/helpers目录下 但是有些Helper我们希望是全局共享的,一般我们将这些Helper方法都扔在ApplicationHelper模块里 其实我们可以在app/helpers目录下建立我们自定义的Helper模块,如formatting_helper、path_helper等 # formatting ...
by hideto 2011-05-26 浏览 (1388) 回复 (0) 群组: 每天一剂Rails良药

Rails宝典之第六十三式: model name in url

设计更利于搜索的url是SEO的一个要点,我们来看看怎样将http://localhost/products/6转化成 http://localhost/products/6-gallon-of-milk或者http://localhost/products/gallon-of-milk 对第一种url,首先添加permalink字段: create_table "products&q ...
by hideto 2011-05-26 浏览 (1059) 回复 (0) 群组: 每天一剂Rails良药

Rails宝典之第六十二式: Hacking ActiveRecord

看下面一个场景: # product.rb class Product < ActiveRecord::Base validates_presence_of :price def self.find_ordered find(:all, : order => 'name') end end # product_test.rb require File.dirname(__FILE__) ...
by hideto 2011-05-26 浏览 (972) 回复 (0) 群组: 每天一剂Rails良药

Rails宝典之第六十一式: Sending Email

这是一个使用Rails发送Email的简单指南 1,修改config/environments/development.rb,配置smtp config.action_mailer.raise_delivery_errors = true # set delivery method to :smtp, :sendmail or :test config.action_mailer.deliver ...
by hideto 2011-05-26 浏览 (1198) 回复 (0) 群组: 每天一剂Rails良药

Rails宝典之第六十式: 不用fixtures的测试

严重依赖fixtures的测试会变得十分脆弱,并且很难维护。 让我们来看看怎样写不使用fixtures的测试。 看cart/line_item的例子: class Cart < ActiveRecord::Base has_many :line_items def total_weight line_items.to_s.sum(&:weight) end end class Li ...
by hideto 2011-05-26 浏览 (849) 回复 (0) 群组: 每天一剂Rails良药

Rails宝典之第五十九式: optimistic locking

Rails里的Magic Column Names 当两个用户尝试同时更新同一record时,其中一个用户的更新将被覆盖,我们可以使用乐观锁来解决这个问题。 首先给Model添加一个称为lock_version的column; # migrations/011_add_products_lock_version.rb add_column :products, :lock_version, : ...
by hideto 2011-05-26 浏览 (1350) 回复 (0) 群组: 每天一剂Rails良药

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

来看看怎样写自己的Generator吧 首先运行: ruby script/generate console中的输出可以看到Rails默认的generate: Installed Generators Builtin: controller, integration_test, mailer, migration, model, observer, plugin, resource, sca ...
by hideto 2011-05-26 浏览 (1863) 回复 (0) 群组: 每天一剂Rails良药

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

看一个选择Category或从text_field创建新Category的例子: <!-- views/products/_form.rhtml --> <p> <label for="product_category_id">Category:</lable><br/> <%= f.collection_sel ...
by hideto 2011-05-26 浏览 (1432) 回复 (1) 群组: 每天一剂Rails良药

Rails宝典之第五十六式: Logger

Rails在controller里自带了logger,我们可以用来做debug: def show @cart = current_cart logger.debug "Hello world! #{@cart.to_yaml}" # debug, info, warn, error, fatal end 我们可以在environment.rb里配置Logger的消息格式: ...
by hideto 2011-05-26 浏览 (1184) 回复 (0) 群组: 每天一剂Rails良药

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

看一个Shopping Cart的例子: Full Price: <% if line_item.unit_price == 0 %> <td class="price">FREE</td> <% else %> <td class="price"> <%= number_to_currenc ...
by hideto 2011-05-26 浏览 (1301) 回复 (0) 群组: 每天一剂Rails良药

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

当我们访问错误的url时,development模式下会显示错误栈页面 但如果我们想测试production模式下的出错页面,我们应该怎样做呢? 可以发现,development.rb和production.rb里分别设置了config.action_controller.consider_all_requests_local为 true和false,当请求被当作本地请求时,出错页面会显示错误栈而 ...
by hideto 2011-05-26 浏览 (1147) 回复 (0) 群组: 每天一剂Rails良药

Rails宝典之第五十二式: 使用Checkbox来更新

来看看使用Checkbox多选来更新的情况: 先设置routes: # routes.rb map.resources :tasks, :collection => { :complete => :put} 页面表单: <% form_tag complete_tasks_path, :method => :put do %> <ul> <% ...
by hideto 2011-05-26 浏览 (1188) 回复 (0) 群组: 每天一剂Rails良药

Rails宝典之第五十一式: will_paginate

Edge Rails(将为Rails 2.0)中将内建的pagination移出作为插件classic_pagination 在本视频中推荐直接使用will_paginate插件,因为它更简单更容易 安装will_paginate ruby script/plugin install svn://errtheblog.com/svn/plugins/will_paginate 在Model中 ...
by hideto 2011-05-26 浏览 (1201) 回复 (1) 群组: 每天一剂Rails良药

Rails宝典之第五十式: Contributing to Rails

贡献给Rails项目的最好方式是提交一个patch,这次的视频就来教大家怎样提交patch。 1,checkout edge Rails svn co http://svn.rubyonrails.org/rails/trunk vendor/rails 2,修改源码 ... 3,看看更改的代码 svn status vendor/rails 4,输出diff文件 svn diff ...
by hideto 2011-05-26 浏览 (1403) 回复 (0) 群组: 每天一剂Rails良药

Rails宝典之第四十九式: 阅读API

关于Rails API有如下站点,它们各有特点: api.rubyonrails.org railsapi.org railsbrain.com gotapi.com railsmanual.org noobkit.com ruby.search rorapi.com
by hideto 2011-05-26 浏览 (1558) 回复 (0) 群组: 每天一剂Rails良药

Rails宝典之第四十八式: Console Tricks

script/console还是非常有用的: p = Project.new y p y p可以打印对象信息 "foo".to_ Pro p.n 代码提示,也比较好用 app.class app.get '/projects' app.flash app.assigns[:projects] app.cookies 使用app也非常有用 helper.text ...
by hideto 2011-05-26 浏览 (1113) 回复 (0) 群组: 每天一剂Rails良药

Rails宝典之第四十七式: 两种多对多

Rails里实现多对多有两种方式: 1,has_and_belongs_to_many # in migration def self.up create_table 'categories_products', :id => false do |t| t.column :category_id, :integer t.column :product_id, :integer end end ...
by hideto 2011-05-26 浏览 (1500) 回复 (0) 群组: 每天一剂Rails良药

Rails宝典之第四十六式: 捕获所有的route

我们可以在routes.rb文件的最后一行添加对上面规则没有捕捉到的url进行统一捕获: map.connect '*path', :controller => 'redirect', :action => 'index' 以*开头的url规则表示捕捉任意的url,当然映射到的controller或action可以任意指定 一般可以将*path映射到:controller => ...
by hideto 2011-05-26 浏览 (1028) 回复 (0) 群组: 每天一剂Rails良药

Rails宝典之第四十五式: RJS tips

这次介绍了一些RJS的tips # do_magic.rjs page[:reviews].toggle page[:review_name].value = "this is cool" page << "if ($('review_name').value == 'foo') (" page.alert('hi foo!') page < ...
by hideto 2011-05-26 浏览 (740) 回复 (0) 群组: 每天一剂Rails良药

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

遇到RJS或Ajax的bug很难调试,这次就来看看我们应该怎样调试RJS的bug 遇到RJS错误,一般可以按如下步骤检查: 1,检查*.js文件是否都include进来 2,检查页面源代码,看看RJS生成的JavaScript是否正确 3,检查development log,该日志里会显示后台Ruby&Rails代码的错误栈 4,使用firebug 5,查看RJS自己alert的错误信息
by hideto 2011-05-26 浏览 (905) 回复 (0) 群组: 每天一剂Rails良药

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

来看看RJS的应用 我们首先要加上*.js文件,如修改application.rhtml: <%= javascript_include_tag :defaults %> 然后给Review的create方法加上js格式的应答: def create @review = Review.create!(params[:review]) flash[:notice] = " ...
by hideto 2011-05-26 浏览 (1671) 回复 (0) 群组: 每天一剂Rails良药

Rails宝典之第四十二式: with_options

Rails里有些方法使用一个Hash作为最后一个可选的参数,如果对多个方法有同样的选项,我们可以使用with_options来减少冗余: # models/user.rb with_options :if => :should_validate_password? do |user| user.validates_presence_of :password user.validates_co ...
by hideto 2011-05-26 浏览 (1260) 回复 (0) 群组: 每天一剂Rails良药

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

默认每次save我们的Model时都会执行validation,但有时候我们希望有一定的条件触发时才执行validation: # models/user.rb validates_presence_of :password, :if => :should_validate_password? validates_presence_of :country, : on => :creat ...
by hideto 2011-05-26 浏览 (1209) 回复 (0) 群组: 每天一剂Rails良药

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

我们先来看action_view/helpers/active_record_helper.rb里的一段代码: module ActionView class Base @@field_error_proc = Proc.new{ |html_tag, instance| "<div class=\"fieldWithErrors\">#{html_tag ...
by hideto 2011-05-26 浏览 (1117) 回复 (0) 群组: 每天一剂Rails良药

Rails宝典之第三十八式: 多按钮表单

看看一个多按钮的表单的例子: <!-- projects/new.rhtml --> <% if params[:preview_button] %> <div id="preview"> <h2><%= @project.name %></h2> <% textilize @project.desc ...
by hideto 2011-05-26 浏览 (1402) 回复 (0) 群组: 每天一剂Rails良药

编程语言知识库热门文章

最新评论

谢谢 讲解 曾经看过良哥哥 的学习笔记上有介绍 有所了解 看了楼主的讲解 加深了印象 谢谢
smilesail 评论了 实战篇:设计自己的Annotation
正在研究学习,真的是雪中送炭。。。多谢!
tantec 评论了 实战篇:设计自己的Annotation
还是不知道这个东西被发明出来什么用?
yhjhoo 评论了 实战篇:设计自己的Annotation
我目前是结合aop一起使用,用于记录方法调用及其他。。
tou3921 评论了 实战篇:设计自己的Annotation
写的挺不错,花了20分钟左右读完,并把例子运行了一遍,感谢楼主的无私奉献
JavaCrab 评论了 实战篇:设计自己的Annotation
很好的例子,看了你的例子在看那些理论,就简单多了。。。。顶
kala888 评论了 实战篇:设计自己的Annotation
light 老大威武
pluswolfboy 评论了 实战篇:设计自己的Annotation
谢谢,明白 annotion原理 ````
aleck1769394 评论了 实战篇:设计自己的Annotation
写的可读性非常好,让我对annotation很容易就有了初步认识,好文章
wangluo19 评论了 实战篇:设计自己的Annotation
引用 [*[url][/url][flash=200,200][/flash]dfdfgf[si ...
lovexzhh 评论了 实战篇:设计自己的Annotation
Global site tag (gtag.js) - Google Analytics