2011-06-25 94 views
1

在我的Rails3应用程序中,我有一个Model1中的方法,当Model1被更新并且满足某些条件时创建其他对象。所以我在Model1中有一个after_update回调方法来完成这项工作。我想将消息传递回控制器以显示在页面上,但闪光灯在模型中不可用。Rails3:显示来自模型的消息?

什么是正确的方法来做到这一点?

回答

1

如果你的事情模式有普通的旧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不过没关系,他们只需要足够长的时间来进入生活下一行的闪光通知。

+0

我认为我应该添加一个访问器到我的模型并使用它?好的,我这样做了。我在after_initialize中添加了attr_accessor:messages和init'd作为数组(所以我可以返回多个消息)。然后我将其追加到我的方法中,并在我的视图中修改它的显示以显示数组中的所有消息。 所以这是工作,但我想我认为Rails会为此提供一些东西。并不是说这太复杂了,看来Rails对所有的东西都有答案! ;-) –

+0

忘了说,谢谢你回答我的问题。 –

+0

这就是铁轨开发的本质 - 总是在猜测自己,认为必须有一个更简单的方法! – chrismealy