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.

Reply via email to