Skip to content

Instantly share code, notes, and snippets.

@pyk
Forked from schneems/gist:2968840
Last active January 4, 2016 07:39
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pyk/8589862 to your computer and use it in GitHub Desktop.
Save pyk/8589862 to your computer and use it in GitHub Desktop.
# generate using this gems : http://rubygems.org/gems/terminal-table
require "terminal-table"
title = "posts"
properties = ["id", "title", "author_name", "body"]
r = []
r << [1, "I love dogs", "John", "woof"]
r << [2, "cars are great", "Sara", "I think they are"]
posts_table = Terminal::Table.new title: title, headings: properties, rows: r
puts posts_table
title = "comments"
properties = ["id", "name", "body", "post_id"]
r = []
r << [1, "richard", "that was great", {:value => 1, :alignment => :center}]
r << [2, "susan", "cats are better", {:value => 1, :alignment => :center}]
r << [3, "james", "they are", {:value => 2, :alignment => :center}]
c_table = Terminal::Table.new title: title, headings: properties, rows: r
puts c_table

Week 3 Quiz

1. What does ORM stand for?

ORM : Object Relational Mapper

2. What are the four functions of persistent storage? (hint: CRUD)

create, read, update, delete

3. The result is 'princess bride' what was the query? You can use Ruby (ActiveRecord) or SQL

class User < ActiveRecord::Base

end
------------------------------------
| Users Table                      |
+----+---------+-------------------+
| ID | Name    | Movie             |
|----+---------+-------------------|
| 1  | Richard | zoolander         |
|----+---------+-------------------|
| 2  | Ruby    | princess bride    |
|----+---------+-------------------|
| 3  | Chris   | sandlot           |
+----+---------+-------------------|

answer:

princess_bride = User.find_by(id:2).movie

4. What type of key does the ID column represent in the Users table above

  • A. Foreign

  • B. Primary (my answer)

  • C. Public

  • D. Private

5) MIN is a database function, list one more

answer: MAX

6) In Rails we could build a blog. On each blog post we might want comments. We could say that a Post has_many :comments and that a Comment belongs to :post.

class Post < ActiveRecord::Base
    has_many :comments
end

class Comment < ActiveRecord::Base
    belongs_to :post
end

A post has properties :title, :author_name, and :body, a comment has properties :name & :body. Sketch out a posts table and a comments table including the primary and foreign keys. Use this data:

  1. "John" wrote a post titled "I love dogs" with the content "woof", "richard" commented "that was great", susan commented "cats are better"

  2. "Sara" wrote a post titled "cars are great" with the content " I think they are", "james" commented "they are"

Sketch this out so it looks like the users table above

my answer:

+----+----------------+-------------+------------------+
|                        posts                         |
+----+----------------+-------------+------------------+
| id | title          | author_name | body             |
+----+----------------+-------------+------------------+
| 1  | I love dogs    | John        | woof             |
| 2  | cars are great | Sara        | I think they are |
+----+----------------+-------------+------------------+
+----+---------+-----------------+---------+
|                 comments                 |
+----+---------+-----------------+---------+
| id | name    | body            | post_id |
+----+---------+-----------------+---------+
| 1  | richard | that was great  |    1    |
| 2  | susan   | cats are better |    1    |
| 3  | james   | they are        |    2    |
+----+---------+-----------------+---------+

7. Using only Ruby (ActiveRecord) and using the data from the above example, how would we find all the posts that were written by "john".

answer:

john_post = Post.find_by(author_name: "John")

8. What is the output of the following

puts "hello".class # => String

puts {:bird => 'tweet'}.class # => Hash

class Adult
end

class Child < Adult
end

little_richie = Child.new

puts little_richie.class # => Child
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment