45 lines
1.0 KiB
Ruby
45 lines
1.0 KiB
Ruby
class BubblesController < ApplicationController
|
|
before_action :set_bubble, only: %i[ show edit update ]
|
|
|
|
def index
|
|
if params[:tag_id]
|
|
@tag = Tag.find(params[:tag_id])
|
|
@bubbles = @tag.bubbles
|
|
@most_active_bubbles = @tag.bubbles.left_joins(:comments, :boosts).group(:id).order(Arel.sql("COUNT(comments.id) + COUNT(boosts.id) DESC")).limit(10)
|
|
else
|
|
@bubbles = Bubble.all.order(created_at: :desc)
|
|
@most_active_bubbles = Bubble.left_joins(:comments, :boosts).group(:id).order(Arel.sql("COUNT(comments.id) + COUNT(boosts.id) DESC")).limit(10)
|
|
end
|
|
end
|
|
|
|
def new
|
|
@bubble = Bubble.new
|
|
end
|
|
|
|
def create
|
|
@bubble = Bubble.create!(bubble_params)
|
|
redirect_to @bubble
|
|
end
|
|
|
|
def show
|
|
end
|
|
|
|
def edit
|
|
end
|
|
|
|
def update
|
|
@bubble.update!(bubble_params)
|
|
redirect_to @bubble
|
|
end
|
|
|
|
|
|
private
|
|
def set_bubble
|
|
@bubble = Bubble.find(params[:id])
|
|
end
|
|
|
|
def bubble_params
|
|
params.require(:bubble).permit(:title, :body, :color, :due_on, :image, tag_ids: [])
|
|
end
|
|
end
|