Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ GEM
activesupport (= 4.2.2)
rake (>= 0.8.7)
thor (>= 0.18.1, < 2.0)
rake (10.4.2)
rake (11.1.2)
rdoc (4.2.0)
responders (2.1.0)
railties (>= 4.2.0, < 5)
Expand Down Expand Up @@ -195,4 +195,4 @@ DEPENDENCIES
web-console (~> 2.0)

BUNDLED WITH
1.10.5
1.11.2
2 changes: 2 additions & 0 deletions app/controllers/api_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
class ApiController < ActionController::Base
end
6 changes: 6 additions & 0 deletions app/controllers/api_v1/messages_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
class ApiV1::MessagesController < ApiController

def index
render json: Message.all
end
end
7 changes: 5 additions & 2 deletions app/controllers/messages_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ class MessagesController < ApplicationController

def index
# TODO: fix N+1 queries for user and comments
@messages = Message.order("id DESC").page( params[:page] )
@messages = Message.order("id DESC").includes(:comments).page( params[:page] )

if params[:status] == "pending"
# TODO: @messages = @messages.pending
Expand Down Expand Up @@ -56,7 +56,10 @@ def destroy
@message = current_user.messages.find( params[:id] )
@message.destroy

redirect_to root_path
respond_to do |format|
format.html { redirect_to :back }
format.js
end
end

protected
Expand Down
1 change: 1 addition & 0 deletions app/models/user.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ def display_name

def posts_count
# TODO: 請完成我
self.messages.count + self.comments.count
end

def words_count
Expand Down
1 change: 1 addition & 0 deletions app/views/messages/destroy.js.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
$("#message-<%= @message.id %>").remove();
6 changes: 3 additions & 3 deletions app/views/messages/index.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
</tr>

<% @messages.each do |msg| %>
<tr>
<tr id="message-<%= msg.id %>">
<td><%= link_to msg.title, message_path(msg) %></td>
<td><%= msg.status %></td>
<td><%= msg.category_name %></td>
Expand All @@ -34,11 +34,11 @@
<td>
<% if msg.user == current_user %>
<%= link_to "Edit", edit_message_path(msg) %>
<%= link_to "Delete", message_path(msg), :method => :delete, :data => { :confirm => "Are u sure?"} %>
<%= link_to "Delete", message_path(msg), :method => :delete, :data => { :confirm => "Are u sure?"}, :remote => true %>
<% end %>
</td>
</tr>
<% end %>
</table>

<%= paginate @messages %>
<%= paginate @messages %>
5 changes: 5 additions & 0 deletions config/routes.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
Rails.application.routes.draw do

scope :path => '/api/v1/', :module => "api_v1", :as => 'v1', :defaults => { :format => :json } do
resources :messages
end

devise_for :users

resources :messages do
Expand Down
4 changes: 3 additions & 1 deletion spec/models/user_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,13 @@
describe "#words_count" do
before do
# TODO: 加 Message 和 Comment 測試資料
m = Message.create!( :user => @user, :title => "fasd sdfa", :content => "ef fref fer" )
c = Comment.create!( :user => @user, :message => m, :content => "fd fdsf" )
end

it "加總該使用者的所有 Mesasge 和 Comment 的總字數" do
# TODO: 測試 words_count 方法

expect( @user.words_count ).to eq(7)
end
end

Expand Down