我在我的应用程序中使用了活动管理员。在我的控制器中,我有一个带redirect_to
功能的动作更新。但在更新时,它给我一个错误。
在此操作中多次调用渲染和/或重定向。请注意,您只能调用渲染或重定向,每次操作最多一次。另请注意,重定向和渲染都不会终止操作的执行,因此如果要在重定向后退出操作,则需要执行redirect_to(...) and return
之类的操作。
def update
@user = User.find(params[:id])
@user.update
mailers.notify(@user).deliver
redirect_to user_path(@user)
end
我试过
但没有任何作用。
before_filter :only =>[:create,:update] do
if self.action_name.to_sym == :create
@user = User.new(params[:user])
else
@user = User.find(params[:id])
end
答案 0 :(得分:1)
我通过将此添加到我的更新操作来解决此问题。这对我很有用。
def update
update!do |format|
format.html { redirect_to_user_path(@user)}
end
答案 1 :(得分:0)
你的目的是什么?为什么在mailers.notify(@user).deliver
操作中使用update
?
将通知移至after_update
模型中的User
过滤器,如下所示:
after_update :send_notifications
def send_notifications
Mailer.notify(self).deliver
end
将更新方法更改为smth,如下所示:
def update
super do |format|
redirect_to user_path(@user), notice: "Your notice message" and return if resource.valid?
end
end