Hooking Up Votes And Topics
Goals
Topics |
---|
id |
title |
description |
Votes |
---|
id |
topic_id |
Steps
Step 1: Teach the Topic model about Votes
class Topic < ActiveRecord::Base has_many :votes, dependent: :destroy endStep 2: Teach the Vote model about Topics
class Vote < ActiveRecord::Base belongs_to :topic endStep 3: Play around with Topics and Votes in the Rails console
Next, open a Rails console in a terminal window:rails cExpected result:$ rails c Loading development environment (Rails 4.0.0) 1.9.3-p194 :001 >See how many topics exist:Topic.countSave the first topic into a variable:my_topic = Topic.firstChange the title of that topic to something else:my_topic.update_attributes(title: 'Edited in the console')Add a vote to that topic:my_topic.votes.createSee how many votes that topic has:my_topic.votes.countRemove a vote from that topic:my_topic.votes.first.destroyModel class / association methods
- Topic.first
- Topic.last
- Topic.all
- Topic.count
- Topic.find_by_id(5)
- Topic.destroy_all
- my_topic.votes.count
- my_topic.votes.create
- my_topic.votes.destroy_all
Model instance methods
- my_topic.title
- my_topic.title = 'New title'
- my_topic.update_attributes(title: 'New title')
- my_topic.save
- my_topic.save!
- my_topic.destroy
- my_topic.votes.first.destroy
Explanation
Next Step:
Go on to Allow People To Vote
Back to Voting On Topics