Skip to content
This repository has been archived by the owner on Dec 12, 2021. It is now read-only.

Commit

Permalink
fixing episode 323
Browse files Browse the repository at this point in the history
  • Loading branch information
ryanb committed Feb 9, 2012
1 parent 6702f98 commit e80716e
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 56 deletions.
22 changes: 22 additions & 0 deletions episode-323/README.md
Expand Up @@ -3,3 +3,25 @@
http://railscasts.com/episodes/323-backbone-on-rails-part-1 http://railscasts.com/episodes/323-backbone-on-rails-part-1


Requires Ruby 1.9.2 or higher. Requires Ruby 1.9.2 or higher.

Commands used in episode

bundle
rails new raffler
rails g controller main index --skip-javascripts
rails g backbone:install
rails g backbone:scaffold entry
rails g resource entry name winner:boolean --skip-javascripts
rake db:migrate
rake db:seed

JavaScript used in console

entries = new Raffler.Collections.Entries()
entries.length
entries.fetch()
entry = entries.shuffle()[0]
entry.get('name')
entry.set({'winner': true})
entry.save()
entries.create({'name': 'Avdi Grimm'})
@@ -1,11 +1,2 @@
class Raffler.Collections.Entries extends Backbone.Collection class Raffler.Collections.Entries extends Backbone.Collection
url: '/api/entries' url: '/api/entries'

drawWinner: ->
nonWinners = _.reject @shuffle(), (entry) ->
entry.get('winner')
winner = nonWinners[0]
if winner
winner.set({winner: true})
winner.save()
winner.trigger('highlight')
@@ -1,28 +1,9 @@
class Raffler.Views.EntriesIndex extends Backbone.View class Raffler.Views.EntriesIndex extends Backbone.View
template: JST['entries/index'] template: JST['entries/index']


events:
'submit #new_entry': 'newEntry'
'click #draw': 'drawWinner'

initialize: -> initialize: ->
@collection.on('reset', @render, this) @collection.on('reset', @render, this)
@collection.on('add', @addEntry, this)

newEntry: (event) ->
event.preventDefault()
@collection.create(name: $('#new_entry_name').val())
$('#new_entry_name').val('')

drawWinner: (event) ->
event.preventDefault()
@collection.drawWinner()

addEntry: (entry) ->
view = new Raffler.Views.Entry(model: entry)
$('#entries').append(view.render().el)


render: -> render: ->
$(@el).html(@template()) $(@el).html(@template(entries: @collection))
@collection.each(@addEntry)
this this

This file was deleted.

This file was deleted.

@@ -1,10 +1,7 @@
<h1>Raffler</h1> <h1>Raffler</h1>


<form method="post" id="new_entry"> <ul>
<input type="text" name="name" id="new_entry_name"> <% for entry in @entries.models: %>
<input type="submit" value="Add"> <li><%= entry.get('name') %></li>
</form> <% end %>

</ul>
<ul id="entries"></ul>

<button id="draw">Draw Winner</button>

0 comments on commit e80716e

Please sign in to comment.