Rails: может ли метод ActiveRecord "уничтожить" пойти не так и не быть выполненным? - PullRequest
0 голосов
/ 06 мая 2018

Я пишу приложение в RoR, и мне было интересно, если следующий, если заявление должно быть помещено туда:

class ArticlesController < ApplicationController
  before_action :set_user, only: %i[destroy edit]
...
  def destroy
    if @article.destroy
      flash[:success] = 'Article deleted'
      redirect_to articles_path
    else
      flash[:error] = 'Failed to delete the article'
      redirect_to article_path(@article)
    end
  end
...

private

  def set_user
    @article = Article.find(params[:id])
    if current_user.id == @article.author_id
      @author = current_user
    else
      redirect_to article_path(@article), message: 'You can\'t do that'
    end
  end
end

Возможно ли вызывать ветку "else", которую я уничтожаю? Я пишу спецификации для этого контроллера, и я не могу придумать, как протестировать этот код. Я использовал тот же подход, что и для «.save», но там мы имеем дело с проверкой БД. Если нет возможности вызвать «else», я просто удалю эти строки.

Что-то не так с поиском владельца статьи или поиском статьи по идентификатору, ошибка будет присутствовать раньше, в методе "set_user".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...