2013-01-31 25 views
1

我有用戶模型,我想用戶列表爲json,我想length of name以及每個用戶的響應,但我不怎麼能做到這一點?我試過如下圖所示,結果是double render錯誤。如果我從循環中獲取respond_to,那麼它不會返回任何內容。所以請幫助我。我如何在每個數組中包含一個變量在rails中?

@users = User.all 
    @users.each do |user| 
     length = user.name.count 
     respond_to do |format| 
      format.json { render json: @users.to_json(:include => [:length]) } 
     end 
     end 

我想要的響應是象

[{ 「用戶」:{ 「名稱」:asgd, 「ID」:1, 「長度」: 「4」}},{ 「用戶」:{ 「名稱」:asdfg, 「ID」:2 「長度」: 「5」}}]

+0

你的期望的響應不包括任何長度。 –

+0

對不起。現在就更新。 – logesh

+0

如何添加方法as format.json {render json:all_users.to_json,:methods => [:pic_url]}? – logesh

回答

1

嘗試:

@users = User.all 
all_users = Array.new 
@users.each do |user| 
    all_users << {"id" => user.id, "name" => user.name,"length" => user.name.size} 
end 
respond_to do |format| 
    format.json { render json: all_users.to_json } 
end 
+0

大小沒有工作。所以我使用計數,有時沒有名稱,然後它顯示未定義的方法計數爲零:NilClass – logesh

+0

'user.name.length'應該工作 –

+1

'user.name.try(:length)'應該保護你免受no-名稱以及 –

相關問題