hitode909の日記

趣味はマリンスポーツですの日記です

RamazeでJSONを返す

provideを使う.

なんたら.jsonのときJSONを返す

普段はHTMLだけどJSONも返したいとき

class UserController < Controller
  provide(:json, :type => 'application/json'){|a,s| s.to_json }

  def index(user_name)
    @user = User.find(:name => user_name)
  end
end

これで,/user/なんたらのときテンプレートを出力して,/user/なんたら.jsonのときJSONを返す.
インスタンス変数が,とかではなくて,returnされたオブジェクトがJSONになる.

ずっとJSONを返す

/api/以下とか,ずっとJSONを返したいとき.

class ApiController < Controller
  provide(:html, :type => 'application/json'){|a,s| s.to_json }

  def now
    {:now => Time.now.to_i}
  end
end

これで,/api/nowだけでJSONを返す.


provideはinnateのlib/innate/node.rbに実装がある.