class Recipe < ActiveRecord::Base
  validates_numericality_of :isdn,:greater_than=>5000,:allow_blank => true
  belongs_to :category
end
填表单时,首次创建不限制,但是修改的时候会要求isdn有一个数值范围

4;35;1mCategory Load (0.016000)[0m   [0mSELECT * FROM categories WHERE (categories."id" = 1)
 4;36;1mCategory Load (0.000000)[0m   [0;1mSELECT * FROM categories WHERE (categories."id" = 2)
 4;35;1mCACHE (0.000000)[0m   [0mSELECT * FROM categories WHERE (categories."id" = 1)
在单个请求内,会以select语句为key,自动cache相同的select语句(这个特性,好像不是那么有用)

class CreatePosts < ActiveRecord::Migration
  create_table :posts do |t|
    t.integer :user_id, :category_id, :null => false
    t.text    :body
    t.timestamps
  end
  def self.down
    drop_table :posts
  end
end
创建表简化了不少,null应该默认不出现,否则老是异常...

stylesheet_link_tag "application", "forms", :cache => true
据说只要加了cache就自动合并到一个all文件里面...这个特性不错,再下一步就是ZIP压缩了

<% for post in @posts do %>
  <%= render :partial => 'article',
             :layout => 'article_simple',
             :locals => {:article => post} %>
<% end %>
partial是可以反复渲染的,现在一批partial能套在一个局部的layout上面了...

map.resources :categories do |t|
  t.resources :recipes
end
对应categories/2/recipes 这类的url,restful风格

class PostsController < ApplicationController
  rescue_from(ActiveRecord::RecordNotFound) do |exception|
    render :file => '/bad_record'
  end
  rescue_from NoMethodError, :with => proc do |e|
    render :text => e.message
  end
end
更简单的404页面或者错误处理...

class AdminController < ApplicationController
  before_filter :authenticate
  def authenticate   
    return false if (session[:login_tries].to_i > 3)
    if(@user = authenticate_with_http_basic { |name, pass|
                 User.authenticate(name, pass)
               })
      session[:login_tries] = nil
      return true
    else
      session[:login_tries] = session[:login_tries].to_i + 1
      request_http_basic_authentication
    end
  end
end
基本的http用户验证,管理员后台登录...

helper :all 默认加载所有的helper...

config/initializers 自动加载默认启动配置...

rake routes列表当前的url路径

db:create db:reset db:rollback db:migrate

@author = Author.find_by_name 'jim'
@articles = Post.paginate_by_author_id(@author.id,:page => params[:page])
新的分页的方法...

yaml_contents = File.open("#{RAILS_ROOT}/config/mailer.yml")
mailer_options = YAML.load(yaml_contents)
ActionMailer::Base.smtp_settings = mailer_options
在environment里面这么写,然后添加邮件配置信息到mailer.yml~

:address: "smtp.example.com"
:port: 587
:domain: "smtp.example.com"
:user_name: "test@topfunky.com"
:password: "not-the-real-password"
:authentication: :plain

接下来竟然是几十页的svn上的changelog...囧

--------------
chenjinlai
2008-04-25

peepcode-rails2 读书笔记...相关推荐

  1. 【读书笔记】知易行难,多实践

    前言: 其实,我不喜欢看书,只是喜欢找答案,想通过专业的解答来解决我生活的困惑.所以,我听了很多书,也看了很多书,但看完书,没有很多的实践,导致我并不很深入在很多时候. 分享读书笔记: <高效1 ...

  2. 读书笔记:编写高质量代码--web前端开发修炼之道(二:5章)

    读书笔记:编写高质量代码--web前端开发修炼之道 这本书看得断断续续,不连贯,笔记也是有些马虎了,想了解这本书内容的童鞋可以借鉴我的这篇笔记,希望对大家有帮助. 笔记有点长,所以分为一,二两个部分: ...

  3. 《编程匠艺》读书笔记

    <编程匠艺>读书笔记之一 <编程匠艺>读书笔记之二 <编程匠艺>读书笔记之三 <编程匠艺>读书笔记之四 <编程匠艺>读书笔记之五 <编 ...

  4. 《Java: The Complete Reference》等书读书笔记

    春节期间读了下<Java: The Complete Reference>发现这本书写的深入浅出,我想一个问题,书中很多内容我们也知道,但是为什么我们就写不出这样一本书,这么全面,这么系统 ...

  5. oracle直查和call哪个更快,让oracle跑的更快1读书笔记二

    当前位置:我的异常网» 数据库 » <>读书笔记二 <>读书笔记二 www.myexceptions.net  网友分享于:2013-08-23  浏览:9次 <> ...

  6. 《JavaScript面向对象精要》读书笔记

    JavaScript(ES5)的面向对象精要 标签: JavaScript 面向对象 读书笔记 2016年1月16日-17日两天看完了<JavaScript面向对象精要>(参加异步社区的活 ...

  7. 《The Art of Readable Code》 读书笔记 01

    放假前在学校图书馆借了一本新书<The Art of Readable Code>,寒假回来看看,写写其中的Key Idea .summary和一些读书笔记. Preface 前言部分主要 ...

  8. 读书笔记(2) OpenLayers中的图层

    OpenLayers有多个不同的图层类,每一个都可以连接到不同的地图服务器.例如通过Layer.WMS类可以连接到WMS地图服务器,通过Layer.Google类可以连接到谷歌地图服务器.OpenLa ...

  9. 《Microsoft Sql server 2008 Internals》读书笔记--第九章Plan Caching and Recompilation(10)

    <Microsoft Sql server 2008 Internals>读书笔记订阅地址: http://www.cnblogs.com/downmoon/category/230397 ...

  10. 《一个操作系统的实现》读书笔记连载ing……

    从昨天起深陷<一个操作系统的实现>这个书不能自拔,这本书可以说再次燃起了我小时候想写操作系统的美好愿望,所以说愿望总是美好的,还进入了大学开始真正去学计算机才发现似乎写操作系统是和我没什么 ...

最新文章

  1. Dynamics Ax 2012 – AIF Import CSV File
  2. word2003的页码设置
  3. 【多线程高并发】深入理解JMM产生的三大问题【原子性、可见性、有序性】
  4. pb 放弃数据窗口所做修改_为什么我放弃在线数据课程进行基于项目的学习
  5. dell idrac 复位_DELL 服务器 装系统前初始化(恢复出厂、超线程、虚拟化、iDRAC设置)...
  6. Deepin安装最新显卡RTX2080Ti及CUDA10.1
  7. 2.JVM和DVM之间的区别
  8. Git工作流中常见的三种分支策略:GitFlow、GitHubFlow和GitLabFlow
  9. python实现字符串匹配算法BF,BF改,KMP
  10. 一个没有担当的领导,通常会有哪些表现?
  11. django “如何”系列4:如何编写自定义模板标签和过滤器
  12. Trying to create too many scroll contexts. Must be less than or equal to: [20000]
  13. 【JAVA SE基础篇】29.初识数组
  14. 我的世界空岛服务器修改地形,我的世界空岛制作教程 特别地形制作
  15. (微信,支付宝)小程序头像上传选择裁剪区域
  16. 计算机视觉论文速递(三)YOLO-Pose:《Enhancing YOLO for Multi Person Pose .....》实时性高且易部署的姿态估计模型
  17. python是否被高估了?
  18. k折交叉验证优缺点_k折交叉验证(R语言)
  19. win10远程桌面连接凭据怎么设置_win10系统设置让远程桌面连接记住密码下次登录不需再输入的步骤...
  20. Coursera吴恩达《优化深度神经网络》课程笔记(3)-- 超参数调试、Batch正则化和编程框架

热门文章

  1. Python图像识别,图片相似度计算!
  2. Pr 入门教程 如何在多声道音频中选择性地启用声道?
  3. 细胞膜包被纳米粒(M-NPs)|双重细胞膜包裹负载siEFNA1蛋黄脂质纳米药物|生物膜包裹血管生长因子
  4. SI-SourceInsight如何设置字体大小
  5. 《EasyRL》强化学习笔记
  6. lambda函数一直报connect错,可能是编译器不支持lambda
  7. java jsch 切换用户_如何在java中使用Jsch切换到root用户执行命令?
  8. docx行间距怎么设置_word2017如何设置行间距
  9. WWDC2011加州之旅后记
  10. 进制及转换(二进制Binary)