Skip to content

Commit 925e5fe

Browse files
author
Ryan Bigg
committed
Section 5.3.2: We can now edit tickets
1 parent 75f35de commit 925e5fe

File tree

4 files changed

+51
-0
lines changed

4 files changed

+51
-0
lines changed

ticketee/app/controllers/tickets_controller.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,16 @@ def create
1818
end
1919
end
2020

21+
def update
22+
if @ticket.update(ticket_params)
23+
flash[:success] = "Ticket has been updated."
24+
redirect_to [@project, @ticket]
25+
else
26+
flash[:error] = "Ticket has not been updated."
27+
render action: "edit"
28+
end
29+
end
30+
2131
private
2232
def ticket_params
2333
params.require(:ticket).permit(:title, :description)
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<div class='row'>
2+
<h2>Editing a ticket in <%= @project.name %></h2>
3+
4+
<%= render "form" %>
5+
</div>
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
<div id='ticket'>
22
<h2><%= @ticket.title %></h2>
3+
<%= link_to "Edit Ticket",
4+
[:edit, @project, @ticket],
5+
class: "edit" %>
36
<%= simple_format(@ticket.description) %>
47
</div>
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
require "rails_helper"
2+
3+
feature "Editing tickets" do
4+
let!(:project) { FactoryGirl.create(:project) }
5+
let!(:ticket) { FactoryGirl.create(:ticket, project: project) }
6+
7+
before do
8+
visit "/"
9+
click_link project.name
10+
click_link ticket.title
11+
click_link "Edit Ticket"
12+
end
13+
14+
scenario "Updating a ticket" do
15+
fill_in "Title", with: "Make it really shiny!"
16+
click_button "Update Ticket"
17+
18+
expect(page).to have_content "Ticket has been updated."
19+
20+
within("#ticket h2") do
21+
expect(page).to have_content("Make it really shiny!")
22+
end
23+
24+
expect(page).to_not have_content ticket.title
25+
end
26+
27+
scenario "Updating a ticket with invalid information" do
28+
fill_in "Title", with: ""
29+
click_button "Update Ticket"
30+
31+
expect(page).to have_content("Ticket has not been updated.")
32+
end
33+
end

0 commit comments

Comments
 (0)