Skip to content

Latest commit

 

History

History
56 lines (38 loc) · 993 Bytes

bookshelf.md

File metadata and controls

56 lines (38 loc) · 993 Bytes

Bookshelf.js

Model

class Book extends Bookshelf.Model
  tableName: 'books'

Associations

class Book extends Bookshelf.Model
  # Associations
  author:  -> @belongsTo(Author)
  summary: -> @hasOne(Summary)
  pages:   -> @hasMany(Pages)
  shelves: -> @belongsToMany(Shelves)

  @hasMany(Comment)
    .through(Chapter)

  @belongsToMany(Comment)
    .withPivot(['created_at'])

Collections

class Books extends Bookshelf.Collection
  model: Book

books = new Books()
books.query(where: { id: 2 })
.fetch()
.then ->

Fetching associations

new Book(id: 1).summary().fetch()
.then (summary) ->

Manipulation

Reading (Fetch by ID)

new Story(id: 2).fetch()
.then (story) ->
  story.id       #=> 2
  story.title    #=> "Through the Looking Glass"

  story.summary = "Hello"
  story.save()

.then -> ...

References