Isso é propenso a injeção de SQL?

Na minha ação do controlador, tenho o seguinte:

def index
    @articles = (params[:mine] == "true") ? current_user.articles : Article.search(params[:search])
    @articles = @articles.sort! { |a,b| b.created_at <=> a.created_at }
    @articles = Kaminari.paginate_array(@articles).page(params[:page]).per(25)

    respond_to do |format|
      format.html
      format.json { render json: @articles }
    end
end

E no modelo:

  def self.search(search)
    if search.present?
      where("category LIKE ? OR article_type LIKE ?", "%#{search}%","%#{search}%")
    else
      find(:all)
    end
  end

Eu entendo que a injeção de SQL seria possível se você usasse params diretamente em uma consulta. Aqui, estou passando os parâmetros diretamente para a consulta where throughArticle.search(params[:search]). Isso é propenso a injeção de SQL? Se for, como posso torná-lo mais seguro? Eu também tenho minhas dúvidas se eu escrevi o código do controlador corretamente. Se você tiver sugestões para refatorar o código do controlador, por favor me avise e eles serão muito bem-vindos. Muito obrigado!

questionAnswers(1)

yourAnswerToTheQuestion