用哪个合适? flash[:notice] = 'some msg'
或 :notice = 'some msg'
?
这两个选项我都遇到过,但是没有解释区别。所以我很困惑哪个是正确使用。也许是一样的?
最佳答案
如果您有一个带有操作的 Controller ,例如:
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
哈希的notice设置为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您会看到通知可以作为选项传递。
从根本上说,这两件事做的是同一件事。它们只是设置不同。
希望这对您有所帮助!
关于ruby-on-rails - 哪个用对了?闪光[:notice] vs :notice?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42130127/