2012-02-02 82 views
0

我有以下內容,不知道爲什麼它不起作用。它輸出整個位置對象。僅限於rails as_json:渲染不起作用

def test 
    @l=Location.find(12) 
    render :json => @l.as_json(only: [:id, :name]) 
end 

我該如何限制只有ID和名稱?我不想使用respond_to或respond_with塊。

thx

回答

1

這是行嗎?

render json: { location: { id: @l.id, name: @l.name } } 

我想編輯我的答案。我認爲這是做到這一點的正確方法。

render json: @l.to_json(only: [:id, :name]) 
+0

THX。這個工程,但我將如何添加語法位置數組,如Location.all – timpone 2012-02-02 01:24:27

+0

我認爲語法會是:'render json:{locations:Location.all.map {| l | {id:l.id,name:l.name}}}' – Max 2012-02-02 01:29:08

+0

請看我編輯的答案。 – Max 2012-02-02 01:33:34

0

你可以使用ActiveRecord ::基地的to_json方法這樣

render :json => @l.to_json(:only => [:id, :name]) 
+0

這是舊的語法! ;) – DaMainBoss 2012-03-05 01:14:34