-
Notifications
You must be signed in to change notification settings - Fork 0
/
pages_controller.rb
103 lines (85 loc) · 2.48 KB
/
pages_controller.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
class PagesController < ApplicationController
rescue_from ActiveRecord::RecordNotFound, :with => :record_not_found
# GET /pages
# GET /pages.json
def index
@pages = Page.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @pages }
end
end
# GET /pages/1
# GET /pages/1.json
def show
@page = Page.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @page }
end
end
# GET /pages/new
# GET /pages/new.json
def new
@page = Page.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @page }
end
end
# GET /pages/1/edit
def edit
@page = Page.find(params[:id])
end
# POST /pages
# POST /pages.json
def create
@page = Page.new(params[:page])
respond_to do |format|
if @page.save
format.html { redirect_to @page, notice: 'Page was successfully created.' }
format.json { render json: @page, status: :created, location: @page }
else
format.html { render action: "new" }
format.json { render json: @page.errors, status: :unprocessable_entity }
end
end
end
# PUT /pages/1
# PUT /pages/1.json
def update
@page = Page.find(params[:id])
Rails.logger.info "ID: #{params[:id]}"
Rails.logger.info "BODY: #{params[:page][:body].inspect}"
# Convert <div> line breaks to <p>
params[:page][:body] = params[:page][:body].gsub(/\<div\>/, '<p>')
params[:page][:body] = params[:page][:body].gsub(/\<\/div\>/, '</p>')
params[:page][:body] = params[:page][:body].gsub(/\<p\>\<br\>\<\/p\>/, '')
params[:page][:body] = params[:page][:body].gsub(/\<br\>/, '')
respond_to do |format|
if @page.update_attributes(params[:page])
Rails.logger.info "UPDATED PAGE!"
format.html { redirect_to @page, notice: 'Page was successfully updated.' }
format.json { render :json => @page }
else
format.html { render action: "edit" }
format.json { render json: @page.errors, status: :unprocessable_entity }
end
end
end
# DELETE /pages/1
# DELETE /pages/1.json
def destroy
@page = Page.find(params[:id])
@page.destroy
respond_to do |format|
format.html { redirect_to pages_url }
format.json { head :no_content }
end
end
private
def record_not_found
@page = params[:id]
render :template => "pages/not_found", :status => 404
end
end