1
在我的Rails3应用程序中,我有一个Model1中的方法,当Model1被更新并且满足某些条件时创建其他对象。所以我在Model1中有一个after_update回调方法来完成这项工作。我想将消息传递回控制器以显示在页面上,但闪光灯在模型中不可用。Rails3:显示来自模型的消息?
什么是正确的方法来做到这一点?
在我的Rails3应用程序中,我有一个Model1中的方法,当Model1被更新并且满足某些条件时创建其他对象。所以我在Model1中有一个after_update回调方法来完成这项工作。我想将消息传递回控制器以显示在页面上,但闪光灯在模型中不可用。Rails3:显示来自模型的消息?
什么是正确的方法来做到这一点?
如果你的事情模式有普通的旧attr_accessor :messages
那么你的控制器可以这样做:
def update
@thing = Thing.find params[:id]
if @thing.update_attributes
redirect_to root_path, :notice => "The messages are #{@thing.messages}"
else
render 'edit'
end
end
的消息将不会被保存@thing
不过没关系,他们只需要足够长的时间来进入生活下一行的闪光通知。
我认为我应该添加一个访问器到我的模型并使用它?好的,我这样做了。我在after_initialize中添加了attr_accessor:messages和init'd作为数组(所以我可以返回多个消息)。然后我将其追加到我的方法中,并在我的视图中修改它的显示以显示数组中的所有消息。 所以这是工作,但我想我认为Rails会为此提供一些东西。并不是说这太复杂了,看来Rails对所有的东西都有答案! ;-) –
忘了说,谢谢你回答我的问题。 –
这就是铁轨开发的本质 - 总是在猜测自己,认为必须有一个更简单的方法! – chrismealy