28

オブジェクトでメソッドを使用していて、引数を機能さto_jsonせようとしています。:methodsモデル (Drop) に と呼ばれるメソッドがありis_favorited_by_user?ます。このメソッドは の引数を取り、current_userドロップがユーザーによってお気に入りに登録されているかどうかを確認します。この引数をメソッドに渡すにはどうすればよいですかto_json

render :json => @drops.to_json(:methods => :is_favorited_by_user?(current_user))
4

2 に答える 2

49

モデルに属性を追加current_userして、実行前に設定できますto_json

  attr_accessor :current_user

  def is_favorited_by_user?(user=nil)
    user ||= current_user
    # rest of your code
  end


@drops.current_user = current_user
render :json => @drops.to_json(:methods => :is_favorited_by_user?)
于 2010-04-30T15:49:29.597 に答える
4

取るメソッドto_jsonは、引数を取るメソッドではなく、単に「より良い」メソッドになることを目的としています。(通常、db属性に基づいて作成されたものです。)

ここの例を参照してください。引数を渡すものはありません。

http://apidock.com/rails/ActiveRecord/Serialization/to_json

カスタムなことをしたい場合は、必要な情報のハッシュを構築するメソッドを作成してから、そのハッシュをjsonに変換する必要があります。

于 2010-04-30T15:29:55.903 に答える