前提・実現したいこと
Action Cableを使ってChat機能を実装させようと考えています。
以下message_rooms_channel.rbというファイルがありますが、
例外が発生した際、なぜか「message.save!」のrollbackがされません。
なお、rescue内にプロセスが進んでいることは確認できました。
該当のソースコード
ruby
1class MessageRoomsChannel < ApplicationCable::Channel 2 def subscribed 3 stream_from "message_rooms_#{params[:message_room_id]}_channel" 4 end 5 6 def send_message(data) 7 message = current_user.messages.new( 8 message_room_id: data['message_room_id'], 9 user_parent_id: current_user.parent_id, 10 company_id: current_user.company_id, 11 body: data['body'] 12 ) 13 # ここで一旦保存されます 14 message.save! 15 # ここで例外を発生させます 16 raise 17 rescue StandardError => e 18 logger.error e 19 end 20end
channel内で、controllerと同じtransaction処理はできないのでしょうか?
大変恐縮ですが、ご教示のほどよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。