2012-03-29 31 views
1

私はメモがあり、それには一定の属性があります。関連タグもあります。私はgonを使って、この変数をページのjavascriptファイルで利用できるようにしています(@ note.attributesをこのページで利用可能にしています)。Rails/jQueryでgonを使用して関連オブジェクトを含める方法

gon.note = @note.attributes 

私がすることができ、出力の内容::

私はインスタンス化した場合、ノートは簡単すなわち属性を出力することができます

alert(gon.note.content) 

しかし、これはノートのタグを通じ入れていませんが..私は、例えば、行うことはできません。

alert(gon.note.tags) 

を私はノートのタグを表示したいが、私はgon.nでそれらを通じ持参する場合他の全ての変数gon.tagsを作るのではなく、どうすればいいですか(いくつかの種類の結合やインクルード)?複数の音符が表示されている方が良いと言いたいので、これを実行したいと思います。

答えて

0

あなた@note.tagshas_many協会(ではない、単純な配列)である場合、gonTagインスタンスの配列をシリアライズする方法を知りません。

あなたは何もしませんが、別の変数を導入することができます

# controller 
gon.note_tags = @note.tags.map &:attributes 

# JS 
var first_tag_name = gon.note_tags[0].name; 

あなたはあまりにも多くのARオブジェクトをシリアル化する必要がある場合坤はRablをサポートしているので、Rablを使用することもできます。

+0

私はあなたが正しいと思います...残念ながら! – jay

6

Railsは、あなたが含まれるように含めるフィールド団体、さらにはメソッドを指定することができます便利as_json方法があります。これは、単一のオブジェクトまたはコレクションの配列のルビーハッシュを返します。これは、gonがto_jsonを呼び出したときにうまくシリアライズされます。

gon.note = @note.as_json(:include => [:tags])) 
関連する問題