Hi,
the reviewname method should be called update.
I think it is prefered to
use @review.update_attributes(params.require(:review).permit(:title))
you should put the status code outside of the json response to have them in
the head instead of the body. You should render the updated object. You can
also use symbols. format.json { render json: @review, status: :ok }
when the review cannot be updated, you should not use 500 (internal server
error) but 422 (unprocessable entity) and give some infos about the error
(your model validators does the job for you) for example, format.json {
render json: @review.errors, status: :unprocessable_entity }
Le mercredi 3 juin 2015 15:09:06 UTC-4, Ruby-Forum.com User a écrit :
>
> Hey guys, I am a student and I got the memo (without explanation) that
> my following code can be much better. How would you improve my
> controller/reviewname method? Thank you for your time!
>
> class ReviewController < ApplicationController
>
> def index
> @reviews = Review.all.order(created_at: :desc)
> end
>
> def reviewname
> @review = Review.find(params[:id])
> if @review.update_attribute(:title, sanitize(params[:title]))
> format.json { render json: { status: 200 } }
> else
> format.json { render json: { status: 500 } }
> end
> end
> end
>
> --
> Posted via http://www.ruby-forum.com/.
>
--
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/rubyonrails-talk/7310bbc4-ddc2-4d6e-9416-e33eb9fb2d28%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.