How do I do the following in a better way?
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
Hmm maybe
articles = Article.where(category: params[:category])
articles = articles.where(author_id: author.id) if author.present?
# use your articles here...
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)