哪个是正确的? flash [:notice] vs:通知?

时间:2017-02-09 06:53:36

标签: ruby-on-rails

哪一个是正确的? flash[:notice] = 'some msg':notice = 'some msg'

我遇到了两种选择,但没有关于差异的解释。所以我很困惑哪一个是正确的。也许它是一样的?

1 个答案:

答案 0 :(得分:3)

如果您有一个带有操作的控制器,例如:

def create
  @activity = Activity.new activity_params
  if @activity.save
    flash[:notice] = 'Activity was successfully created!'
    redirect_to activity_path(@activity)
  else
    render :new
  end
end

然后,您可以使用flash[:notice]并将flash哈希的通知设置为Activity was successfully created!

但是,您是正确的,在使用redirect_to时,您可以选择:notice作为选项:

def destroy
  if @activity.destroy
    redirect_to activities_path, notice: 'Activity was successfully destroy!'
  else
    flash.now[:notice] = 'Activity was not destroyed.'
  end
end

如果您检查ActionController::Redirecting module,您会看到该通知可以作为选项传递。

从根本上说,这两件事做同样的事情。他们的设置不同。

希望这有帮助!