如何在to_json中获取回形针图片的url
我有一个使用这样的回形针的模型:
has_attached_file :avatar, :styles => { :large => "100x100>" , :medium => "50x50>", :small => "20x20>" }, :default_url => 'http://img.dovov.commissing-owner_:style.png'
我用to_json方法导出这个模型,我想导出图像的URL,所以我可以在JavaScript中使用它。
我知道我可以在视图中像这样访问url:
<%= image_tag model.avatar.url(:medium) %>
但是我怎样才能在to_json方法中做同样的事情。
我有这样的一些:
respond_to do |format| render :json => @model.to_json(:only => [:id,:name,:homephone,:cellphone]) end
我相信最简单的方法来完成这个将是在您的对象中创build一个方法来返回头像的URL。
class Model < ActiveRecord::Base ... def avatar_url avatar.url(:medium) end ... end
这将允许您在使用不需要任何参数的简单方法调用to_json时使用methods选项:
respond_to do |format| render :json => @model.to_json(:only => [:id,:name,:homephone,:cellphone], :methods => [:avatar_url]) end
哪个应该产生这样的结果:
{"id" => 1, "name" => "Cool model", "homephone" => 1234567890, "cellphone" => 0987654321, "avatar_url" => "www.coolsite.com/this_avatars_path"}
请参阅这些参考:
Ruby to_json:方法参数
显示控制器显示图像json
本地主机:3000 /城市/ 1.json
respond_to do |format| format.html format.json { render :json => @model.to_json(:methods => [:model_url]) } end