Skip to content

Commit

Permalink
#18 User profile clean and fix.
Browse files Browse the repository at this point in the history
  • Loading branch information
ilhanoguzhan committed Aug 30, 2013
1 parent 3fb11e6 commit ba6af5b
Show file tree
Hide file tree
Showing 4 changed files with 100 additions and 0 deletions.
77 changes: 77 additions & 0 deletions app/controllers/users_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
class UsersController < ApplicationController
before_action :set_user, only: [:show, :edit, :update, :destroy]

# GET /users
# GET /users.json
def index
@users = User.all
end

# GET /users/1
# GET /users/1.json
def show
@profile = @user.profile
end

# GET /users/new
def new
@user = User.new
end

# GET /users/1/edit
def edit
@user.build_profile if !@user.profile
@profile = @user.profile
end

# POST /users
# POST /users.json
def create
@user = User.new(user_params)

respond_to do |format|
if @user.save
format.html { redirect_to @user, notice: 'User was successfully created.' }
format.json { render action: 'show', status: :created, location: @user }
else
format.html { render action: 'new' }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end

# PATCH/PUT /users/1
# PATCH/PUT /users/1.json
def update
respond_to do |format|
if @user.update(user_params)
format.html { redirect_to @user, notice: 'User was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: 'edit' }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end

# DELETE /users/1
# DELETE /users/1.json
def destroy
@user.destroy
respond_to do |format|
format.html { redirect_to users_url }
format.json { head :no_content }
end
end

private
# Use callbacks to share common setup or constraints between actions.
def set_user
@user = User.find(params[:id])
end

# Never trust parameters from the scary internet, only allow the white list through.
def user_params
params.require(:user).permit(:email, profile_attributes: [:id, :name, :surname, :gender, :date_of_birth, :stackoverflow, :github, :twitter, :blog, :website, :bitbucket, :bio, :_destroy ])
end
end
4 changes: 4 additions & 0 deletions app/views/users/index.json.jbuilder
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
json.array!(@users) do |user|
json.extract! user,
json.url user_url(user, format: :json)
end
18 changes: 18 additions & 0 deletions app/views/users/show.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<p id="notice"><%= notice %></p>

<div class="page-header">
<h1>
<%= "User Show" %>
<div class="pull-right">
<%= link_to 'Edit', edit_user_path(@user) %>
<%= link_to 'Back', users_path %>
</div>
</h1>
</div>

<dl class="dl-horizontal">
<dt><%= User.human_attribute_name(:email) %>:</dt>
<dd><%= @user.email %></dd>
<dt><%= Profile.human_attribute_name(:name) %>:</dt>
<dd><%= @profile.name %></dd>
</dl>
1 change: 1 addition & 0 deletions app/views/users/show.json.jbuilder
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
json.extract! @user, :created_at, :updated_at

0 comments on commit ba6af5b

Please sign in to comment.