В случае, если это кому-нибудь пригодится, я найду хороший способ сделать это:
class MyModel < ActiveRecord::Base
has_attached_file :avatar, :styles => { :large => "500x500#", :medium => "300x300#", :small => "100x100#", :thumb => "50x50#" }
def as_json(options)
json = super
self.avatar.styles.each do | format |
json = json.merge({"avatar_"+format[0].to_s => self.avatar(format[0])})
end
json
end
end
Вы можете просто позвонить
render :json => @my_model
Также работает при рендеринге коллекций.
Затем можно сделать условный рендеринг с помощью as_json (options), например:
model_to_json = @my_model.to_json(:nested => true)
render :json => model_json