mik*_*gto 3 ruby activerecord activesupport sinatra
首先,我没有使用Rails.我正在使用Sinatra进行Active Record的这个项目.
我希望能够在我的Model类上覆盖to_json或as_json,并让它定义一些'default'选项.例如,我有以下内容:
class Vendor < ActiveRecord::Base
def to_json(options = {})
if options.empty?
super :only => [:id, :name]
else
super options
end
end
end
Run Code Online (Sandbox Code Playgroud)
其中Vendor具有的属性多于id和name.在我的路线中,我有以下内容:
@vendors = Vendor.where({})
@vendors.to_json
Run Code Online (Sandbox Code Playgroud)
这@vendors是一个Array供应商对象(显然).但是,返回的json不会调用我的to_json方法并返回所有模型属性.
我实际上没有选择修改路线,因为我实际上使用的是修改过的sinatra-rest gem(http://github.com/mikeycgto/sinatra-rest).
有关如何实现此功能的任何想法?我可以在我的sinatra-rest gem中做类似下面的事情,但这看起来很傻:
@PLURAL.collect! { |obj| obj.to_json }
Run Code Online (Sandbox Code Playgroud)
尝试重写serializable_hash intead:
def serializable_hash(options = nil)
{ :id => id, :name => name }
end
Run Code Online (Sandbox Code Playgroud)
更多信息在这里.
| 归档时间: |
|
| 查看次数: |
3933 次 |
| 最近记录: |