【问题标题】:How do I get my controller to return just 2 attributes of an object in a json response?如何让我的控制器在 json 响应中仅返回对象的 2 个属性?
【发布时间】:2013-03-06 08:44:12
【问题描述】:

所以我想在我的json 响应中取回我的@neighborhood 对象的:id, :name 属性。

这是我在控制器中的操作:

  def autocomplete_neighborhood_name
    @neighborhood = Neighborhood.select("id, name").where("name LIKE ?", "#{params[:name]}%").order(:name).limit(10)

    respond_to do |format|
      format.json { @neighborhood :only => [:id, :name]}
    end    
  end

format.json... 行出现语法错误。

我该如何完成我想要的?

谢谢。

编辑 1

我的真正目标是尝试重构这段代码,使用 format.json 并使用 Rails 3.2.x 的新方法:

def autocomplete_neighborhood_name
  respond_with(
    Neighborhood.
      select("id, name").
      where("name LIKE ?", "#{params[:name]}%").
      order(:name).
      limit(10).
      as_json(:only => [:id, :name]))      
end

如果您对我可以如何做得更好有任何其他建议,我将不胜感激。

【问题讨论】:

    标签: ruby-on-rails json ruby-on-rails-3


    【解决方案1】:

    试试这个:

    format.json { render json: @neighborhood , :only => [:id, :name] }
    

    【讨论】:

    • 我刚刚更新了问题...查看我正在重构的旧代码 - 关于如何使我的版本更好的任何其他建议?
    • 其实...没关系...您的解决方案效果很好。谢谢!
    • 很高兴我能帮助你,伙计;)
    猜你喜欢
    • 2015-09-25
    • 1970-01-01
    • 2017-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-29
    • 1970-01-01
    • 2013-09-20
    相关资源
    最近更新 更多