1

我正在我的应用程序上创建一个 API。我目前在我的模型中重写了该as_json方法,以便能够从 Paperclip 获取附件和徽标:

def as_json( options = {} )
  super.merge(logo_small: self.logo.url(:small), logo_large: self.logo.url(:large), taxe: self.taxe, attachments: self.attachments)
end

然后在我的控制器中,我正在做:

def index
  @products = current_user.products
  respond_with @products
end

def show
  respond_with @product
end

问题是在索引上,我不想获取所有附件。我只需要在 show 方法上使用它。所以我试了一下:

def index
  @products = current_user.products
  respond_with @products, except: [:attachments]
end

但不幸的是,它仅适用于默认产品属性(我合并的所有内容似乎都没有考虑在内)。我该怎么办才能不发送:attachments

谢谢

4

1 回答 1

1

我建议你看看active_model_serializers。它将提供一种很好的 OOP 方式来处理您需要的对象装饰类型 - 选择性地排除属性 - 等等。甚至还有Railscast

于 2013-10-30T01:13:35.850 回答