【发布时间】:2012-07-20 18:26:32
【问题描述】:
我正在尝试为我正在制作的应用程序制作 API,并且我正在使用回形针 gem 将图像上传到 S3。
在管理方面一切都很好,但对于 api,我想尽可能高效地返回结果,将回形针图像 url 加入每个测验。
我有一个图标模型(这显然是使用回形针的地方)和一个测验模型。一个测验属于一个图标。
这是我返回所有已发布测验的 API 方法
def quizzes
@quizzes = Quiz.published.joins('INNER JOIN icons ON icons.id = quizzes.icon_id').select('icons.image_file_name, quizzes.updated_at, quizzes.description, quizzes.id, quizzes.title')
respond_to do |format|
format.json { render :json => @quizzes }
format.xml { render :xml => @quizzes }
end
end
这只会给我图像名称,而不是图像的完整网址,例如。仅love.png 而不是http://s3.amazonaws.com/myapp-dev/icons/images/000/000/001/original/love.png?1342586714
如何获得完整的网址?它没有存储在我可以看到的 Icon 模型的任何字段中?
--- 编辑 ---
这是返回的记录之一在 xml 中的样子
<quiz>
<description>Voluptatem inventore voluptatibus provident et officia. Consequatur voluptate alias. Laboriosam sit et. Non ea aut doloremque odit officiis. Unde mollitia asperiores omnis eaque at.</description>
<id type="integer">5</id>
<image-file-name type="NilClass">love.png</image-file-name>
<title>Corrupti ea qui veniam et praesentium.</title>
<updated-at type="datetime">2012-07-21T23:26:48Z</updated-at>
</quiz>
谢谢!
【问题讨论】:
-
试试
@quizzes.first.icon.picture_from_url;picture_from_url是回形针提供的辅助方法。 -
我可以看到,@quizzes.first.icon.image 会返回正确且完整的图像 URL,但是如何将其注入到返回的每个测验的结果中?
-
我认为您不需要 - 辅助方法只是根据文件名和它所附加的模型的 ID 计算它。
-
我明白了,但我在这里尝试渲染 xml 或 json,它无法访问辅助方法。我需要将它包含在@quizzes 数组中,以便以 xml 或 json 格式输出。
标签: ruby-on-rails ruby-on-rails-3 paperclip