Use Activerecord '#or' method for queries

That let's us use relation names (like `sender`) and avoid dealing
directly with ids.
This commit is contained in:
Andy Allan 2023-08-30 17:17:15 +01:00
parent 124909a64c
commit 4af54ce93b

View file

@ -57,7 +57,7 @@ class MessagesController < ApplicationController
# Destroy the message.
def destroy
@message = Message.where("to_user_id = ? OR from_user_id = ?", current_user.id, current_user.id).find(params[:id])
@message = Message.where(:recipient => current_user).or(Message.where(:sender => current_user.id)).find(params[:id])
@message.from_user_visible = false if @message.sender == current_user
@message.to_user_visible = false if @message.recipient == current_user
if @message.save && !request.xhr?
@ -109,7 +109,7 @@ class MessagesController < ApplicationController
# Set the message as being read or unread.
def mark
@message = Message.where("to_user_id = ? OR from_user_id = ?", current_user.id, current_user.id).find(params[:message_id])
@message = Message.where(:recipient => current_user).or(Message.where(:sender => current_user)).find(params[:message_id])
if params[:mark] == "unread"
message_read = false
notice = t ".as_unread"