在Sinatra Web應用程序中,我試圖從數據庫獲取數據並將它們轉換爲UI(最終爲JSON)可接受的對象。但UI和DB字段所需的屬性名稱存在一些差異。與走樣所以我用續集查詢:Sequel JsonSerializer與別名衝突
Sequel::Model.plugin :json_serializer
class Alarm < Sequel::Model
# attr_accessor :id, :Alarm
end
filter = Alarm.filter(:NEName => params[:name]).select(:AlarmNo___id, :AlarmMsg___Alarm).all
但是,當我試圖做到這一點的轉換:
res = filter.to_json
我得到:**undefined method** 'id' for # Alarm:0x000000027403e0
我也嘗試添加存取(見註釋行) attr_accessor :id, :Alarm
並得到了很多像這樣的對象:{"json_class":"Alarm","id":null,"Alarm":null}
,wh這似乎是合乎邏輯的結果。
所以,Q1:如何使json_serializer插件續集走樣的工作?
Q2:也許,可能有一些其他的解決方案來提供這種映射(不創造新的類別和/或增加額外的轉換方法) - 像JSON影響通過to_json方法選項屬性名稱等
感謝您的回答,男士。這石頭! – 2011-05-16 07:26:23