2013-03-06 63 views
0

因此,我想回到json响应中我的@neighborhood对象的:id, :name属性。如何让我的控制器在json响应中仅返回一个对象的两个属性?

这是我在我的控制器动作:

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 

如果您有任何其他建议对于我如何更好地做到这一点,我会很感激反馈。

回答

2

试试这个:

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

我刚刚更新的问题...看到旧的代码我重构 - 因为我会如何使我的版本更好任何其他建议? – marcamillion 2013-03-06 08:53:59

+0

其实......没关系......你的解决方案奇妙地工作。谢谢! – marcamillion 2013-03-06 08:55:49

+0

很高兴我可以帮助你的朋友;) – mart1nn 2013-03-06 11:22:00

相关问题