我正在使用rails 3.0.7。在控制器中我有:
def create
@subscription = Subscription\
.new_from_nested_attributes_parameters(params[:subscription])
if @subscription.save
flash[:notice] = 'The Subscription was successfully created.'
end
respond_with @subscription
end
并在视图中:
<%="Notice:#{flash[:notice]}"%>
尽管对象被正确保存,但不打印任何内容。
你对我该如何解决这个问题有所了解吗?
答案 0 :(得分:7)
我发现了这个问题。
flash [:notice] =“....”正在处理创建操作,重定向到show动作。
我忘记的是我的“节目”包含重定向编辑。
我通过实现这样的show动作来解决这个问题:
def show
redirect_to edit_subscription_path(@subscription),flash
end
从Rails 3.1开始,这应该通过以下方式完成:
def show
flash.keep
redirect_to edit_subscription_path(@subscription)
end
答案 1 :(得分:2)
在Rails 3.2中,以下内容将起作用,并且似乎可以保持闪存不变:
respond_with @subscription, :location => edit_subscription_path(@subscription)
答案 2 :(得分:1)
您可以跳过显示页面:
而不是:
respond_with @subscription
把:
respond_with @subscription, edit_subscription_path(@subscription)