2011-06-25 8 views
1

私のRails3アプリケーションでは、Model1が更新され、特定の条件が満たされたときに、他のオブジェクトを作成するMethod1があります。だから私はこの作業を行う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

これは私のモデルにアクセサを追加して使用する必要があることを意味していますか?私はそうしました。 attr_accessor:メッセージとinit'dをafter_initializeに配列として追加しました(私は複数のメッセージを返すことができます)。次に、私のメソッドでそれを追加し、配列内のすべてのメッセージを表示するために私のビューでその表示を修正しました。 これはうまくいっていますが、私はRailsがこれに何かを提供すると思っていたと思います。これはあまり複雑ではありませんが、Railsにはすべての答えがあるようです! ;-) –

+0

忘れて、私の質問に答えてくれてありがとう。 –

+0

これは、レール開発の本質です。より簡単な方法が必要であると考えて、常に第二に推測しています。 – chrismealy

関連する問題