Ruby on Rails Tuesday, June 9, 2015

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 rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
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.

No comments:

Post a Comment