Ruby on Rails
Friday, July 3, 2015
Hi Colin,
Then in my model I have 3 methods:
This way all the code sits in one method and there is no repeated code
-- I have done that but slightly differently as the 'this' variable was giving me an error.
Controller didn't change. It still just calls the rankup or rankdown methods in the model.
Here's the code for that:
def rank @this_article = Article.find(params[:id])
if (params[:rank] == 'up') @this_article.rankup else @this_article.rankdown end
redirect_to articles_path()endThen in my model I have 3 methods:
def rankup
@affected_article = Article.find_by(ranking: ranking.to_i-1)
swap_rank(@affected_article)
end
def rankdown
@affected_article = Article.find_by(ranking: ranking.to_i+1)
swap_rank(@affected_article)end
private
def swap_rank(affected_article)
@current_ranking = self.ranking
self.ranking = affected_article.ranking affected_article.ranking = @current_ranking
Article.transaction do self.save affected_article.save endendThis way all the code sits in one method and there is no repeated code
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/6d9da33f-8401-4e4a-8a35-ea769c7efd66%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment