ensl.org/app/controllers/comments_controller.rb
2014-03-31 22:37:38 +01:00

55 lines
1.3 KiB
Ruby

class CommentsController < ApplicationController
before_filter :get_comment, only: [:raw, :edit, :update, :destroy]
respond_to :html, :js
def index
@comments = Comment.recent.filtered
end
def show
@comments = Comment.recent5.all conditions: {commentable_id: params[:id2], commentable_type: params[:id]}
render partial: 'list', layout: false
end
def edit
raise AccessError unless @comment.can_update? cuser
end
def create
@comment = Comment.new params[:comment]
@comment.user = cuser
raise AccessError unless @comment.can_create? cuser
respond_to do |format|
if @comment.save
flash[:notice] = t(:comments_create)
format.js { render }
else
flash[:error] = t(:comments_invalid) + @comment.errors.full_messages.to_s
format.html { redirect_to(:back)}
end
end
end
def update
raise AccessError unless @comment.can_update? cuser
if @comment.update_attributes params[:comment]
flash[:notice] = t(:comments_update)
return_to
else
render :edit
end
end
def destroy
raise AccessError unless @comment.can_destroy? cuser
@comment.destroy
redirect_to_back
end
private
def get_comment
@comment = Comment.find params[:id]
end
end