多かれ少なかれ複雑な JSON サーバー応答をレンダリングするために、Web アプリケーションで優れた Tequila-JSON パーサー ( http://github.com/inem/tequila ) を使用しています。JSON-Templates (.jazz) は、どういうわけか実際の「ビュー」でますます成長しています。私は今、インスタンス変数を対応するコントローラーから .jazz テンプレートに取得しようとしていますが、これはどういうわけか失敗します。
これが私がやろうとしていることです。
コントローラー
def get_userlist
@users = User.find(:all, :order => "value DESC", :limit => 10)
@user = User.find_by_email(params[:user_email])
@userid = @user.id # also tried: @userid = 2
respond_to do |format|
format.json
end
end
.jazz ビュー:
-@users
:only
.nickname
.level
.user_icon_url
.email
:methods
.isfriend(@userid)
+last_checkin
+last_checkin_place
:only
.name
.city
これはすべて非常に有効な JSON サーバー応答を返しますが、残念ながら、
:methods
.isfriend(@userid)
メソッド「isfriend」はモデル「User」に存在し、正常に呼び出されて JSON で返されます。しかし、インスタンス変数の値がなぜか間違っています。上記とは対照的に、これはうまく機能します:
:methods
.isfriend(1)
ここで質問です: Tequila は独自の .jazz テンプレートでインスタンス変数を解釈できませんか? 経験、解決策、または回避策を持っている人はいますか?
完全を期すために、ユーザーモデルの isfriend メソッドを次に示します。
def isfriend(user_id)
"Hi, I am User with the id: " + user_id.to_s
end