Skip to content

Commit 83255c8

Browse files
author
Ryan Bigg
committed
Section 6.4.1: Link tickets and users upon ticket creation
1 parent acade12 commit 83255c8

File tree

9 files changed

+30
-5
lines changed

9 files changed

+30
-5
lines changed

ticketee/app/controllers/tickets_controller.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ def new
88

99
def create
1010
@ticket = @project.tickets.build(ticket_params)
11+
@ticket.author = current_user
1112

1213
if @ticket.save
1314
flash[:success] = "Ticket has been created."

ticketee/app/models/ticket.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
class Ticket < ActiveRecord::Base
22
belongs_to :project
3+
belongs_to :author, class_name: "User"
34

45
validates :title, presence: true
56
validates :description, presence: true,

ticketee/app/views/tickets/show.html.erb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,8 @@
66
<%= link_to "Delete Ticket", [@project, @ticket], method: :delete,
77
data: { confirm: "Are you sure you want to delete this ticket?"},
88
class: "delete" %>
9+
<div id='author'>
10+
Created by <%= @ticket.author.email %>
11+
</div>
912
<%= simple_format(@ticket.description) %>
1013
</div>
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
class AddAuthorIdToTickets < ActiveRecord::Migration
2+
def change
3+
add_column :tickets, :author_id, :integer
4+
end
5+
end

ticketee/db/schema.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
#
1212
# It's strongly recommended that you check this file into your version control system.
1313

14-
ActiveRecord::Schema.define(version: 20141125102703) do
14+
ActiveRecord::Schema.define(version: 20141130094135) do
1515

1616
create_table "projects", force: true do |t|
1717
t.string "name"
@@ -26,6 +26,7 @@
2626
t.integer "project_id"
2727
t.datetime "created_at", null: false
2828
t.datetime "updated_at", null: false
29+
t.integer "author_id"
2930
end
3031

3132
add_index "tickets", ["project_id"], name: "index_tickets_on_project_id"

ticketee/spec/features/creating_tickets_spec.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
require "rails_helper"
22

33
feature "Creating Tickets" do
4+
let(:user) { FactoryGirl.create(:user) }
45
before do
6+
login_as(user)
57
FactoryGirl.create(:project, name: "Internet Explorer")
68

79
visit '/'
@@ -15,6 +17,9 @@
1517
click_button "Create Ticket"
1618

1719
expect(page).to have_content("Ticket has been created.")
20+
within("#ticket #author") do
21+
expect(page).to have_content("Created by #{user.email}")
22+
end
1823
end
1924

2025
scenario "Creating a ticket without valid attributes fails" do

ticketee/spec/features/deleting_tickets_spec.rb

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@
22

33
feature "Deleting tickets" do
44
let!(:project) { FactoryGirl.create(:project) }
5-
let!(:ticket) { FactoryGirl.create(:ticket, project: project) }
5+
let(:user) { FactoryGirl.create(:user) }
6+
let!(:ticket) do
7+
FactoryGirl.create(:ticket, project: project, author: user)
8+
end
69

710
before do
811
visit "/"

ticketee/spec/features/editing_tickets_spec.rb

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@
22

33
feature "Editing tickets" do
44
let!(:project) { FactoryGirl.create(:project) }
5-
let!(:ticket) { FactoryGirl.create(:ticket, project: project) }
5+
let(:user) { FactoryGirl.create(:user) }
6+
let!(:ticket) do
7+
FactoryGirl.create(:ticket, project: project, author: user)
8+
end
69

710
before do
811
visit "/"

ticketee/spec/features/viewing_tickets_spec.rb

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,21 @@
22

33
feature "Viewing tickets" do
44
before do
5+
user = FactoryGirl.create(:user)
56
sublime = FactoryGirl.create(:project, name: "Sublime Text 3")
67

78
FactoryGirl.create(:ticket,
89
project: sublime,
910
title: "Make it shiny!",
10-
description: "Gradients! Starbursts! Oh my!")
11+
description: "Gradients! Starbursts! Oh my!",
12+
author: user)
1113

1214
ie = FactoryGirl.create(:project, name: "Internet Explorer")
1315
FactoryGirl.create(:ticket,
1416
project: ie,
1517
title: "Standards compliance",
16-
description: "Isn't a joke.")
18+
description: "Isn't a joke.",
19+
author: user)
1720

1821
visit "/"
1922
end

0 commit comments

Comments
 (0)