2011-05-26 10 views
1

コントローラを介してGSPにモデルを渡す正しい方法は何ですか?また変数を提供します。モデルの一部ではありませんが、GSPによってレンダリングされる必要があります。Grails - モデルと変数をレンダリングする

私が始めた何

:たとえば

def index = { 
     render controller:"test", action:"index", model:[user:user] 
} 

- 私はそれを修正する方法(間違って)私はあなたの例では

def index = { 
     def url = "http://www.stackoverflow.com" 
     render controller:"test", action:"index", model:[user:user, testvar: url] 
} 
+2

はあなたの修正バージョンをテストしたことがありますか?それは正しく動作するはずですから。 GSPで '$ {testvar}'を使うと 'http:// www.stackoverflow.com'と表示されます。 – Pat

+0

私は今朝馬鹿を取った。私の簡単な例が動作します。私は簡潔にするために、もう少しコードを残しました。問題は何か他のものと関係していた。モデルに複数の項目を渡すことに関するいくつかの文書がありますか? Grailsの本に何も見つかりませんでした。私はテストヴァーのことを試したとき、私はちょうど推測していた。 – BuddyJoe

+0

これは、他の人が見つけることの例として、これが生きていると思います。今すぐコンピュータから離れて休憩を取る。私は何か他に尋ねる前に脳を充電する。 – BuddyJoe

答えて

3

を考えて、あなたはこのようなものを書くことができる必要があります:

def index = { 
     def url = "http://www.stackoverflow.com" 
     return [user:user, testvar: url] 
} 

デフォルトでは、Grailsビューは関連するアクションから変数を自動的に返します。これは、ビューpath - controller/action nameをマッピングすることによって自動的に行われます。

「レンダリング」を呼び出すと、少し異なります。コントローラ/アクションに関連付けられていないビューをレンダリングすることができます。私はそれが必要なときにのみ使用することをお勧めします。

1

あなたのコードは正しく見えます。それはGSPにモデルにVARを送信しますが、あなたはremoteFunctionのようにJavaScriptにそれを送信したい場合は、次のようgrails.converters.JSONを使用する必要があります。

render [var1:value1, var2,value2, ...] as JSON 
関連する問題