Ask A Question

Notifications

You’re not receiving notifications from this thread.

How do I do the following in a better way?

teja asked in Tips

How can I write the following code in better way

if author.present?
    Article.where(category:  params[:category], author_id: author.id)
else
    Article.where(category:  params[:category])
end
Reply

Hmm maybe

articles = Article.where(category: params[:category])
articles = articles.where(author_id: author.id) if author.present?

# use your articles here...
Reply

You could build the conditions first then use them in the query:

conditions = { category: params[:category] }
conditions[:author_id] = author.id if author
Article.find(:all, conditions: conditions)
Reply

ou could build the conditions first then use them in the query:

Reply
Join the discussion
Create an account Log in

Want to stay up-to-date with Ruby on Rails?

Join 86,796+ developers who get early access to new tutorials, screencasts, articles, and more.

    We care about the protection of your data. Read our Privacy Policy.