哪一个是正确的? flash[:notice] = 'some msg'
或:notice = 'some msg'
?
我遇到了两种选择,但没有关于差异的解释。所以我很困惑哪一个是正确的。也许它是一样的?
答案 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,您会看到该通知可以作为选项传递。
从根本上说,这两件事做同样的事情。他们的设置不同。
希望这有帮助!