在我的帐户控制器中,我想在保存更改并显示闪存通知后显示(渲染,重定向?)编辑视图。
def update
@account = Account.find(params[:id])
respond_to do |format|
if @account.update_attributes(params[:account])
format.html { redirect_to(@account, :notice => 'Account was successfully updated.') }
else
format.html { render :action => "edit" }
end
end
end
答案 0 :(得分:43)
默认情况下,您必须使用单独的声明,例如
format.html {
flash[:notice] = 'message'
render :edit
}
This ticket有一个补丁,可让您使用render 'edit', :notice => 'message'
。它没有进入Rails,但有一个宝石,flash_render,它添加了它。
答案 1 :(得分:10)
您仍然可以使用Rails 2中的通知:
flash[:notice] = "message"
只需将以下行添加到视图顶部即可显示:
<p id="notice"><%= flash[:notice] %></p>
如果您不想让用户再次填写编辑表单,则应使用render
方法。
答案 2 :(得分:10)
如果您只是使用flash[:notice]
,那么该值仍可在下一个请求中使用。意思是,您将在接下来的2页上看到该文本。而是使用flash.now
仅在当前请求中使值可用。
format.html {
flash.now[:notice] = 'message'
render :edit
}