2013-11-23 161 views
0

這是我第一次在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 

但不知何故,我得到的錯誤

未定義的方法'身份證」爲#

+1

您是否試過'@ patients.select([:id,:fullname])'? –

+0

哦,非常好!謝謝!唯一的問題是,我沒有dataname'fullname',但'forname'和'name'應該連接到'fullname = name,forname'。也許你可以把它作爲asnwer發佈?謝謝 –

+0

您需要將'as_json'方法放入您的'Patient'模型中。不在你的控制器中。 –

回答

1

select條款應做的工作:@patients.select([:id, :fullname, :whateveryouneed])


對於第二個問題,您可能會考慮overidding Patient.as_json方法:

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

但是全名應該包含':name,forename'!對不起 –

+0

我試過像你說的話!你可以在更新中看到它!但它不會工作!我錯了什麼?謝謝 –

+0

也許虛擬屬性是一個好主意? –