Я работаю над api, в котором мне нужны данные разного статуса в одном массиве.
def filter_index_by_admin
articles = []
articles.concat(Article.pending.map { |article| ArticlePresenter.new(article)._show})
articles.concat(Current.user.articles.where(status: 'approved').map { |article| ArticlePresenter.new(article)._show})
articles.concat(Current.user.articles.where(status: 'rejected').map { |article| ArticlePresenter.new(article)._show})
articles.concat(Current.user.articles.where(status: 'saved').map { |article| ArticlePresenter.new(article)._show(user_included: true, comments_included: true)})
render json: { articles: articles }, status: :ok
end
в приведенном выше api есть массив в названных статьях, в которых я объединяю данные в третьей строке Я получаю индекс всех статей, созданных всеми пользователями, у которых статус ожидает рассмотрения.
в четвертой строке я объединяю статьи текущих пользователей со статусом утвержден и то же самое в пятой строке со статусом отклонено и шестая строка со статусом сохранена .
Я знаю, что это не грязный код.
Итак, есть ли способ сделать это в изысканный способ?