Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[Rails 开发入门课程] 第二节 Model

David Zhang
December 18, 2012

[Rails 开发入门课程] 第二节 Model

这一节主要介绍 Rails 中的 Model 基本操作。

David Zhang

December 18, 2012
Tweet

More Decks by David Zhang

Other Decks in Programming

Transcript

  1. RAILS 开发⼊入⻔门课程 RAILS 运⾏行环境 Model Routes 第⼀一节 第⼆二节 第三节 第四节

    Controllers & Views 第五节 ActiveRecord Association 第六节 Form API 12年12月22⽇日星期六
  2. 上节回顾 浏览器 Web Server App Server DB Rails API HTTP

    请求处理流程 12年12月22⽇日星期六
  3. 创建 TOPIC MODEL rails g model Topic subject content:text sticky:boolean

    closed:boolean create db/migrate/20121218004121_create_topics.rb create app/models/topic.rb 12年12月22⽇日星期六
  4. 创建 TOPIC MODEL rails g model Topic subject content:text sticky:boolean

    closed:boolean create db/migrate/20121218004121_create_topics.rb create app/models/topic.rb 12年12月22⽇日星期六
  5. id subject content sticky closed 1 为什么有同鞋学习ruby之 后学习go?? 有⼀一部分写ruby/rails的同 鞋是从java等语⾔言转的

    0 1 2 监控thin服务器 ⺴⽹网站的thin服务器有时候会 down掉。不知道什么原因, 就写了⼀一个简单脚本监控。 1 0 3 Rails 数据库如何选择 开始了rails之旅,但发现教程 和书籍默认的数据库都是 SQLite 1 1 4 gem推荐: better_errors 今天github趋势⻚页上升排 名第⼀一,为你的Rails项⺫⽬目 带来更好的error page. 0 1 topics class Topic < ActiveRecord::Base end attr_accessible :closed, :content, :sticky, :subject Table <=> Model 12年12月22⽇日星期六
  6. id subject content sticky closed 1 为什么有同鞋学习ruby之 后学习go?? 有⼀一部分写ruby/rails的同 鞋是从java等语⾔言转的

    f t 2 监控thin服务器 ⺴⽹网站的thin服务器有时候会 down掉。不知道什么原因, 就写了⼀一个简单脚本监控。 t f 3 Rails 数据库如何选择 开始了rails之旅,但发现教程 和书籍默认的数据库都是 SQLite t t 4 gem推荐: better_errors 今天github趋势⻚页上升排 名第⼀一,为你的Rails项⺫⽬目 带来更好的error page. f t 5 Hello Hello, world f t topics Table <=> Model @topic = Topic.create(:subject => ‘Hello’, :content => ‘Hello, world’, :sticky => false, :closed => true) 12年12月22⽇日星期六
  7. topics Table <=> Model @topic = Topic.find(1) id subject content

    sticky closed 1 为什么有同鞋学习ruby之 后学习go?? 有⼀一部分写ruby/rails的同 鞋是从java等语⾔言转的 f t 2 监控thin服务器 ⺴⽹网站的thin服务器有时候会 down掉。不知道什么原因, 就写了⼀一个简单脚本监控。 t f 3 Rails 数据库如何选择 开始了rails之旅,但发现教程 和书籍默认的数据库都是 SQLite t t 4 gem推荐: better_errors 今天github趋势⻚页上升排 名第⼀一,为你的Rails项⺫⽬目 带来更好的error page. f t 5 Hello Hello, world f t 12年12月22⽇日星期六
  8. topics Table <=> Model @topics = Topic.find_all_by_closed(true) id subject content

    sticky closed 1 为什么有同鞋学习ruby之 后学习go?? 有⼀一部分写ruby/rails的同 鞋是从java等语⾔言转的 f t 2 监控thin服务器 ⺴⽹网站的thin服务器有时候会 down掉。不知道什么原因, 就写了⼀一个简单脚本监控。 t f 3 Rails 数据库如何选择 开始了rails之旅,但发现教程 和书籍默认的数据库都是 SQLite t t 4 gem推荐: better_errors 今天github趋势⻚页上升排 名第⼀一,为你的Rails项⺫⽬目 带来更好的error page. f t 5 Hello Hello, world f t 12年12月22⽇日星期六
  9. id subject content sticky closed 1 为什么有同鞋学习ruby之 后学习go?? 有⼀一部分写ruby/rails的同 鞋是从java等语⾔言转的

    f t 2 监控thin服务器 ⺴⽹网站的thin服务器有时候会 down掉。不知道什么原因, 就写了⼀一个简单脚本监控。 t f 3 Rails 数据库如何选择 开始了rails之旅,但发现教程 和书籍默认的数据库都是 SQLite t t 4 gem推荐: better_errors 今天github趋势⻚页上升排 名第⼀一,为你的Rails项⺫⽬目 带来更好的error page. f t 5 Hello Hello, world f t topics Table <=> Model @topic = Topic.find(4) @topic.subject = “rubygems.org is blocked’ @topic.save 12年12月22⽇日星期六
  10. id subject content sticky closed 1 为什么有同鞋学习ruby之 后学习go?? 有⼀一部分写ruby/rails的同 鞋是从java等语⾔言转的

    f t 2 监控thin服务器 ⺴⽹网站的thin服务器有时候会 down掉。不知道什么原因, 就写了⼀一个简单脚本监控。 t f 3 Rails 数据库如何选择 开始了rails之旅,但发现教程 和书籍默认的数据库都是 SQLite t t 4 rubygems.org is blocked 今天github趋势⻚页上升排 名第⼀一,为你的Rails项⺫⽬目 带来更好的error page. f t 5 Hello Hello, world f t topics Table <=> Model @topic = Topic.find(4) @topic.subject = “rubygems.org is blocked’ @topic.save 12年12月22⽇日星期六
  11. id subject content sticky closed 1 为什么有同鞋学习ruby之 后学习go?? 有⼀一部分写ruby/rails的同 鞋是从java等语⾔言转的

    f t 2 监控thin服务器 ⺴⽹网站的thin服务器有时候会 down掉。不知道什么原因, 就写了⼀一个简单脚本监控。 t f 3 Rails 数据库如何选择 开始了rails之旅,但发现教程 和书籍默认的数据库都是 SQLite t t 4 rubygems.org is blocked 今天github趋势⻚页上升排 名第⼀一,为你的Rails项⺫⽬目 带来更好的error page. f t 5 Hello Hello, world f t topics Table <=> Model Topic.delete(5) 12年12月22⽇日星期六
  12. 业务逻辑 validates:subject, :presence => true, :length => {:minimum => 10}

    validates :content, :length => {:maximum => 500} :presence => true, class Topic < ActiveRecord::Base end attr_accessible :closed, :content, :sticky, :subject 12年12月22⽇日星期六
  13. >> t = Topic.new(:subject => "Welcome") => #<Topic id: nil,

    subject: "Welcome to Rails", content: nil, closed: nil, sticky: nil, created_at: nil, :updated_at: nil> >> t.new_record? => true >> t.save => false >> puts t.errors.full_messages => Content can't be blank => Subject is too short (minimum is 10 characters) RAILS CONSOLE 12年12月22⽇日星期六