Ruby to_json :methods arguments

render-to-response, ruby-on-rails

Solution

You can add `current_user` attribute to your model and set it before executing `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?)

Problem

I am using the `to_json` method on an object, and trying to get the `:methods` argument to work. I have a method on my model (Drop) called `is_favorited_by_user?`. This method takes an argument of the `current_user`, and then checks to see if the drop is favorited by the user. How can I pass this argument through the `to_json` method. ``` render :json => @drops.to_json(:methods => :is_favorited_by_user?(current_user)) ```

Original source