diff --git a/Gemfile.lock b/Gemfile.lock index e1b93b6..d061c81 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -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) @@ -195,4 +195,4 @@ DEPENDENCIES web-console (~> 2.0) BUNDLED WITH - 1.10.5 + 1.11.2 diff --git a/app/controllers/api_controller.rb b/app/controllers/api_controller.rb new file mode 100644 index 0000000..5f381d2 --- /dev/null +++ b/app/controllers/api_controller.rb @@ -0,0 +1,2 @@ +class ApiController < ActionController::Base +end diff --git a/app/controllers/api_v1/messages_controller.rb b/app/controllers/api_v1/messages_controller.rb new file mode 100644 index 0000000..773bfed --- /dev/null +++ b/app/controllers/api_v1/messages_controller.rb @@ -0,0 +1,6 @@ +class ApiV1::MessagesController < ApiController + + def index + render json: Message.all + end +end diff --git a/app/controllers/messages_controller.rb b/app/controllers/messages_controller.rb index 96f65e5..8e0dbc8 100644 --- a/app/controllers/messages_controller.rb +++ b/app/controllers/messages_controller.rb @@ -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 @@ -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 diff --git a/app/models/user.rb b/app/models/user.rb index 6d01aa9..883d1d9 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -13,6 +13,7 @@ def display_name def posts_count # TODO: 請完成我 + self.messages.count + self.comments.count end def words_count diff --git a/app/views/messages/destroy.js.erb b/app/views/messages/destroy.js.erb new file mode 100644 index 0000000..1c6dc82 --- /dev/null +++ b/app/views/messages/destroy.js.erb @@ -0,0 +1 @@ +$("#message-<%= @message.id %>").remove(); diff --git a/app/views/messages/index.html.erb b/app/views/messages/index.html.erb index edac212..1f735fa 100644 --- a/app/views/messages/index.html.erb +++ b/app/views/messages/index.html.erb @@ -24,7 +24,7 @@ <% @messages.each do |msg| %> -