- 「Completed 200 OK」となっているのに*.js.erbに書いたjavascriptのコードが動かないとき。
- javascriptのエラーも発生していないとき。
原因
https://github.com/rails/rails/issues/33115
どうやらrails-ujsが求めているContent-Typeが一致しないことが原因っぽいです。
対策
【対策1】レイアウトファイル名を変更する
views/layouts/*.erb
↓
views/layouts/*.html.erb
###【対策2】render時にlayout: false
を指定する
*_controller.rb
def create
@sending_user = User.find(current_user.id)
@receiving_user = User.find(params[:user_id])
new_like_balance = @sending_user.like_balance - 1
@sending_user.update(like_balance: new_like_balance)
@like = Like.create(sender_id: @sending_user.id, receiver_id: @receiving_user.id)
# ここ
render formats: :js, layout: false
end
どちらの方法でも解決できました。