You can easily move your code from controller to model like that:
#controller
def create
Message.create_with_sender(message_params, @current_user)
end
#model
class Message < ActiveRecord::Base
def self.create_with_sender(params, user)
message = new(params)
message.sender_username = user.username
message.sender_model = user.class.to_s
message.sender_id = user.id
if message.sender_model == "Department"
user.update_column(:gelesen, user.employees.map { |s| "#{s.username}" }.join(','))
else
user.update_column(:gelesen, message.recipient_username)
end
message.save
end
end