I have looked at at least 10 questions on this and tried everything (eg. like this question), but none of the suggestions work, eg:
This for example:
format.json head :no_content and return
throws this error:
ArgumentError (wrong number of arguments (given 2, expected 1)):
Whilst this:
format.json head and return
throws this error:
ArgumentError (wrong number of arguments (given 0, expected 1..2)):
This is what I currently have in the controller action:
def paid
@user = User.find_by(id: session['user_id'])
respond_to do |format|
if !@user.nil?
@user.is_paid = true
@user.payment_reference = payment_params[:reference]
@user.save
format.json { render head, status: :no_content } and return
else
format.json render json: { message: "failed to record payment" }, status: :unprocessable_entity
end
end
end
This works but in the console throw an error:
No template found for PaymentsController#paid, rendering head :no_content
I don't want to add an empty template to solve this. I want to tell Rails that I want to render head :no_content!
This question shows that in Rails 3.1 the default generated code did this:
format.json { head :no_content }
but that shows the same exact error in the log.