:name,:forname to:fullname

时间:2013-11-23 14:40:55

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

这是我第一次在Rails中使用json。在我定义的患者控制器的搜索动作中:

     format.json { render json: @patients}

所以现在这个资源给了我这样一个输出:

[{"id":73551,"typ":null,"name":"Beck","forname":"Ana","birthday":"1945-06-14","titel":"",department_id":2,"tot":null},

我想将输出更改为:

[{"id":73551,"fullname":"Beck, Ana"},{...

我该怎么做?谢谢!

更新!现在我有:

....
      respond_to do |format|
        format.html {}
        format.json { render json: as_json(@patients)}
      end
  end

  def as_json(options={})
     { 
         :id => self.id,
         :fullname => self.name + ", " + self.forname
     } 
  end

但不知怎的,我得到了错误

  

的未定义方法`id'

1 个答案:

答案 0 :(得分:1)

select子句应该完成工作:@patients.select([:id, :fullname, :whateveryouneed])


对于第二个问题,您可以考虑过度使用Patient.as_json方法:

def as_json(options={})
     { 
         :id => self.id,
         :fullname => self.name + ", " + self.forname
     } 
end