ruby-on-rails - ruby to_json :methods arguments

标签 ruby-on-rails render-to-response

我正在对象上使用 to_json 方法,并尝试使 :methods 参数起作用。我的模型 (Drop) 上有一个名为 is_favorited_by_user? 的方法。此方法采用 current_user 参数,然后检查用户是否喜欢该 drop。如何通过 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?)

关于ruby-on-rails - ruby to_json :methods arguments,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2745607/

相关文章:

ruby-on-rails - 如何将第一个 Cucumber 测试添加到 Rails 应用程序中

javascript - 如何使用下拉列表的值显示 div

python - Django render_to_response 未按预期工作

python - Django抛出错误 'WSGIRequest'对象没有属性 'push'

python - Django-cms render_to_response 不渲染到模板

ruby-on-rails - 当我尝试创建一个新项目时出现 Rails 错误

ruby-on-rails - 在 heroku 上部署 Rails 应用程序,不显示 SQL 查询

ruby-on-rails - 如何在 Rails 控制台加载后执行代码?

python - render_to_response 中传递的字典范围

Django - CSRF token 生成 - render_to_response 与渲染