Skip to content

Commit 896857f

Browse files
Pawel WolakPawel Wolak
Pawel Wolak
authored and
Pawel Wolak
committed
Finish demo app
1 parent a39eb2a commit 896857f

33 files changed

+594
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Place all the behaviors and hooks related to the matching controller here.
2+
# All this logic will automatically be available in application.js.
3+
# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/
+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Place all the behaviors and hooks related to the matching controller here.
2+
# All this logic will automatically be available in application.js.
3+
# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
// Place all the styles related to the Microposts controller here.
2+
// They will automatically be included in application.css.
3+
// You can use Sass (SCSS) here: http://sass-lang.com/
+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
body {
2+
background-color: #fff;
3+
color: #333;
4+
font-family: verdana, arial, helvetica, sans-serif;
5+
font-size: 13px;
6+
line-height: 18px; }
7+
8+
p, ol, ul, td {
9+
font-family: verdana, arial, helvetica, sans-serif;
10+
font-size: 13px;
11+
line-height: 18px; }
12+
13+
pre {
14+
background-color: #eee;
15+
padding: 10px;
16+
font-size: 11px; }
17+
18+
a {
19+
color: #000;
20+
&:visited {
21+
color: #666; }
22+
&:hover {
23+
color: #fff;
24+
background-color: #000; } }
25+
26+
div {
27+
&.field, &.actions {
28+
margin-bottom: 10px; } }
29+
30+
#notice {
31+
color: green; }
32+
33+
.field_with_errors {
34+
padding: 2px;
35+
background-color: red;
36+
display: table; }
37+
38+
#error_explanation {
39+
width: 450px;
40+
border: 2px solid red;
41+
padding: 7px;
42+
padding-bottom: 0;
43+
margin-bottom: 20px;
44+
background-color: #f0f0f0;
45+
h2 {
46+
text-align: left;
47+
font-weight: bold;
48+
padding: 5px 5px 5px 15px;
49+
font-size: 12px;
50+
margin: -7px;
51+
margin-bottom: 0px;
52+
background-color: #c00;
53+
color: #fff; }
54+
ul li {
55+
font-size: 12px;
56+
list-style: square; } }

app/assets/stylesheets/users.css.scss

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
// Place all the styles related to the Users controller here.
2+
// They will automatically be included in application.css.
3+
// You can use Sass (SCSS) here: http://sass-lang.com/
+83
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
class MicropostsController < ApplicationController
2+
# GET /microposts
3+
# GET /microposts.json
4+
def index
5+
@microposts = Micropost.all
6+
7+
respond_to do |format|
8+
format.html # index.html.erb
9+
format.json { render json: @microposts }
10+
end
11+
end
12+
13+
# GET /microposts/1
14+
# GET /microposts/1.json
15+
def show
16+
@micropost = Micropost.find(params[:id])
17+
18+
respond_to do |format|
19+
format.html # show.html.erb
20+
format.json { render json: @micropost }
21+
end
22+
end
23+
24+
# GET /microposts/new
25+
# GET /microposts/new.json
26+
def new
27+
@micropost = Micropost.new
28+
29+
respond_to do |format|
30+
format.html # new.html.erb
31+
format.json { render json: @micropost }
32+
end
33+
end
34+
35+
# GET /microposts/1/edit
36+
def edit
37+
@micropost = Micropost.find(params[:id])
38+
end
39+
40+
# POST /microposts
41+
# POST /microposts.json
42+
def create
43+
@micropost = Micropost.new(params[:micropost])
44+
45+
respond_to do |format|
46+
if @micropost.save
47+
format.html { redirect_to @micropost, notice: 'Micropost was successfully created.' }
48+
format.json { render json: @micropost, status: :created, location: @micropost }
49+
else
50+
format.html { render action: "new" }
51+
format.json { render json: @micropost.errors, status: :unprocessable_entity }
52+
end
53+
end
54+
end
55+
56+
# PUT /microposts/1
57+
# PUT /microposts/1.json
58+
def update
59+
@micropost = Micropost.find(params[:id])
60+
61+
respond_to do |format|
62+
if @micropost.update_attributes(params[:micropost])
63+
format.html { redirect_to @micropost, notice: 'Micropost was successfully updated.' }
64+
format.json { head :no_content }
65+
else
66+
format.html { render action: "edit" }
67+
format.json { render json: @micropost.errors, status: :unprocessable_entity }
68+
end
69+
end
70+
end
71+
72+
# DELETE /microposts/1
73+
# DELETE /microposts/1.json
74+
def destroy
75+
@micropost = Micropost.find(params[:id])
76+
@micropost.destroy
77+
78+
respond_to do |format|
79+
format.html { redirect_to microposts_url }
80+
format.json { head :no_content }
81+
end
82+
end
83+
end

app/controllers/users_controller.rb

+83
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
class UsersController < ApplicationController
2+
# GET /users
3+
# GET /users.json
4+
def index
5+
@users = User.all
6+
7+
respond_to do |format|
8+
format.html # index.html.erb
9+
format.json { render json: @users }
10+
end
11+
end
12+
13+
# GET /users/1
14+
# GET /users/1.json
15+
def show
16+
@user = User.find(params[:id])
17+
18+
respond_to do |format|
19+
format.html # show.html.erb
20+
format.json { render json: @user }
21+
end
22+
end
23+
24+
# GET /users/new
25+
# GET /users/new.json
26+
def new
27+
@user = User.new
28+
29+
respond_to do |format|
30+
format.html # new.html.erb
31+
format.json { render json: @user }
32+
end
33+
end
34+
35+
# GET /users/1/edit
36+
def edit
37+
@user = User.find(params[:id])
38+
end
39+
40+
# POST /users
41+
# POST /users.json
42+
def create
43+
@user = User.new(params[:user])
44+
45+
respond_to do |format|
46+
if @user.save
47+
format.html { redirect_to @user, notice: 'User was successfully created.' }
48+
format.json { render json: @user, status: :created, location: @user }
49+
else
50+
format.html { render action: "new" }
51+
format.json { render json: @user.errors, status: :unprocessable_entity }
52+
end
53+
end
54+
end
55+
56+
# PUT /users/1
57+
# PUT /users/1.json
58+
def update
59+
@user = User.find(params[:id])
60+
61+
respond_to do |format|
62+
if @user.update_attributes(params[:user])
63+
format.html { redirect_to @user, notice: 'User was successfully updated.' }
64+
format.json { head :no_content }
65+
else
66+
format.html { render action: "edit" }
67+
format.json { render json: @user.errors, status: :unprocessable_entity }
68+
end
69+
end
70+
end
71+
72+
# DELETE /users/1
73+
# DELETE /users/1.json
74+
def destroy
75+
@user = User.find(params[:id])
76+
@user.destroy
77+
78+
respond_to do |format|
79+
format.html { redirect_to users_url }
80+
format.json { head :no_content }
81+
end
82+
end
83+
end

app/helpers/microposts_helper.rb

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
module MicropostsHelper
2+
end

app/helpers/users_helper.rb

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
module UsersHelper
2+
end

app/models/micropost.rb

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
class Micropost < ActiveRecord::Base
2+
attr_accessible :content, :user_id
3+
4+
belongs_to :user
5+
6+
validates :content, :length => { :maximum => 140 }
7+
8+
end

app/models/user.rb

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
class User < ActiveRecord::Base
2+
attr_accessible :email, :name
3+
has_many :microposts
4+
end

app/views/microposts/_form.html.erb

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<%= form_for(@micropost) do |f| %>
2+
<% if @micropost.errors.any? %>
3+
<div id="error_explanation">
4+
<h2><%= pluralize(@micropost.errors.count, "error") %> prohibited this micropost from being saved:</h2>
5+
6+
<ul>
7+
<% @micropost.errors.full_messages.each do |msg| %>
8+
<li><%= msg %></li>
9+
<% end %>
10+
</ul>
11+
</div>
12+
<% end %>
13+
14+
<div class="field">
15+
<%= f.label :content %><br />
16+
<%= f.text_field :content %>
17+
</div>
18+
<div class="field">
19+
<%= f.label :user_id %><br />
20+
<%= f.number_field :user_id %>
21+
</div>
22+
<div class="actions">
23+
<%= f.submit %>
24+
</div>
25+
<% end %>

app/views/microposts/edit.html.erb

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<h1>Editing micropost</h1>
2+
3+
<%= render 'form' %>
4+
5+
<%= link_to 'Show', @micropost %> |
6+
<%= link_to 'Back', microposts_path %>

app/views/microposts/index.html.erb

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<h1>Listing microposts</h1>
2+
3+
<table>
4+
<tr>
5+
<th>Content</th>
6+
<th>User</th>
7+
<th></th>
8+
<th></th>
9+
<th></th>
10+
</tr>
11+
12+
<% @microposts.each do |micropost| %>
13+
<tr>
14+
<td><%= micropost.content %></td>
15+
<td><%= micropost.user_id %></td>
16+
<td><%= link_to 'Show', micropost %></td>
17+
<td><%= link_to 'Edit', edit_micropost_path(micropost) %></td>
18+
<td><%= link_to 'Destroy', micropost, method: :delete, data: { confirm: 'Are you sure?' } %></td>
19+
</tr>
20+
<% end %>
21+
</table>
22+
23+
<br />
24+
25+
<%= link_to 'New Micropost', new_micropost_path %>

app/views/microposts/new.html.erb

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<h1>New micropost</h1>
2+
3+
<%= render 'form' %>
4+
5+
<%= link_to 'Back', microposts_path %>

app/views/microposts/show.html.erb

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<p id="notice"><%= notice %></p>
2+
3+
<p>
4+
<b>Content:</b>
5+
<%= @micropost.content %>
6+
</p>
7+
8+
<p>
9+
<b>User:</b>
10+
<%= @micropost.user_id %>
11+
</p>
12+
13+
14+
<%= link_to 'Edit', edit_micropost_path(@micropost) %> |
15+
<%= link_to 'Back', microposts_path %>

app/views/users/_form.html.erb

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<%= form_for(@user) do |f| %>
2+
<% if @user.errors.any? %>
3+
<div id="error_explanation">
4+
<h2><%= pluralize(@user.errors.count, "error") %> prohibited this user from being saved:</h2>
5+
6+
<ul>
7+
<% @user.errors.full_messages.each do |msg| %>
8+
<li><%= msg %></li>
9+
<% end %>
10+
</ul>
11+
</div>
12+
<% end %>
13+
14+
<div class="field">
15+
<%= f.label :name %><br />
16+
<%= f.text_field :name %>
17+
</div>
18+
<div class="field">
19+
<%= f.label :email %><br />
20+
<%= f.text_field :email %>
21+
</div>
22+
<div class="actions">
23+
<%= f.submit %>
24+
</div>
25+
<% end %>

app/views/users/edit.html.erb

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<h1>Editing user</h1>
2+
3+
<%= render 'form' %>
4+
5+
<%= link_to 'Show', @user %> |
6+
<%= link_to 'Back', users_path %>

0 commit comments

Comments
 (0)