繁体   English   中英

如何让我的控制器在json响应中仅返回对象的2个属性?

[英]How do I get my controller to return just 2 attributes of an object in a json response?

所以我想在我的json响应中@neighborhood我的@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

如果您对我如何做得更好有任何其他建议,我将非常感谢您的反馈。

尝试这个:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM