オブジェクトでto_json
メソッドを使用しており、:methods
引数を機能させようとしています。モデル(ドロップ)にis_favorited_by_user?
というメソッドがあります。このメソッドは、current_user
の引数を取り、ドロップがユーザーにお気に入りかどうかを確認します。 to_json
メソッドを通じてこの引数を渡すにはどうすればよいですか。
render :json => @drops.to_json(:methods => :is_favorited_by_user?(current_user))
あなたは付け加えられます 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?)
メソッドto_json
テイクは、引数を取るものではなく、単なる「ゲッター」メソッドです。 (通常、db属性に基づいて作成されたものです。)
ここの例を参照してください。引数を渡すものはありません。
http://apidock.com/Rails/ActiveRecord/Serialization/to_json
カスタム何かをしたい場合は、必要な情報のハッシュを構築するメソッドを作成し、そのハッシュをjsonに変換する必要があります。