0
関連するレコードが作成されたときに私のActionCableブロードキャストを送信するコールバックを作成しようとしています。アソシエーションのためにnilを返すアクティブレコードコールバック内の自己?
after_save :broadcast_connection_open_to_room
before_destroy :broadcast_connection_close_to_room
private
def broadcast_connection_close_to_room
ActionCable.server.broadcast(
'room_' + self.room_id.to_s,
state: "exit",
connection_id: self.id,
)
end
def broadcast_connection_open_to_room
ActionCable.server.broadcast(
'room_' + self.room_id.to_s,
state: "enter",
connection_id: self.id,
html: ApplicationController.render(partial: "connections/connection", locals: {connection: self})
)
end
私の破壊後は期待通りに動作しています。しかし、after_saveが実行されるときに私の部分が投げている未定義のメソッド `username 'はnilになります:NilClass私の部分をレンダリングしようとすると。
%li.list-group-item{id: "connection_" + connection.id.to_s}
%h4.list-group-item-heading.text-left= connection.user.username
%div.text-left
.pull-right.vcenter
%span Mute Player
%span.glyphicon.glyphicon-volume-off
接続自体はゼロではありません。しかし、部分的に関連するユーザーレコードを参照すると、問題が発生します。
なぜこれが起こっているのですか?これを解決するにはどうすればよいですか?
私はそれにも試してみましたが、それは同じ結果を生成です。 –
'%h4.list-group-item-heading.text-left = User.find(connection.user_id).username'についてはどうですか? – Jeff