Class: SimpleChat::MessagesController

Inherits:
ApplicationController show all
Defined in:
app/controllers/simple_chat/messages_controller.rb

Instance Method Summary collapse

Methods inherited from ApplicationController

#simple_chat_current_user

Instance Method Details

#createObject

POST /messages



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'app/controllers/simple_chat/messages_controller.rb', line 30

def create
  @message = Message.new(message_params)
  @message.user = simple_chat_current_user
  @chat_room = @message.chat_room

  if @chat_room && !@chat_room.is_member?(simple_chat_current_user)
    redirect_to @chat_room, alert: "You must be a member of this chat room to post messages."
    return
  end

  if @message.save
    respond_to do |format|
      format.html { redirect_to @chat_room || @message, notice: "Message was successfully created." }
      format.turbo_stream
    end
  else
    render :new, status: :unprocessable_content
  end
end

#destroyObject

DELETE /messages/1



60
61
62
63
64
# File 'app/controllers/simple_chat/messages_controller.rb', line 60

def destroy
  chat_room = @message.chat_room
  @message.destroy!
  redirect_to messages_path(chat_room_id: chat_room&.id), notice: "Message was successfully destroyed.", status: :see_other
end

#editObject

GET /messages/1/edit



26
27
# File 'app/controllers/simple_chat/messages_controller.rb', line 26

def edit
end

#indexObject

GET /messages



6
7
8
9
10
11
12
13
# File 'app/controllers/simple_chat/messages_controller.rb', line 6

def index
  if params[:chat_room_id]
    @chat_room = ChatRoom.find(params[:chat_room_id])
    @messages = @chat_room.messages
  else
    @messages = Message.all
  end
end

#newObject

GET /messages/new



20
21
22
23
# File 'app/controllers/simple_chat/messages_controller.rb', line 20

def new
  @message = Message.new(chat_room_id: params[:chat_room_id])
  @chat_room = @message.chat_room
end

#showObject

GET /messages/1



16
17
# File 'app/controllers/simple_chat/messages_controller.rb', line 16

def show
end

#updateObject

PATCH/PUT /messages/1



51
52
53
54
55
56
57
# File 'app/controllers/simple_chat/messages_controller.rb', line 51

def update
  if @message.update(message_params)
    redirect_to @message, notice: "Message was successfully updated.", status: :see_other
  else
    render :edit, status: :unprocessable_content
  end
end