我有两个型号。我想在resources_game模型中使用外键(resource_id)来显示图像。
这是我的Resource
模型
class Resource < ActiveRecord::Base
has_many :resource_books
has_many :resource_games, :dependent => :destroy
belongs_to :resouce_type
has_attached_file :image, :styles => { :small => "100x120>"},
:url => "/assets/games/images/:basename/:style/:basename.:extension",
:path =>":rails_root/public/assets/games/images/:basename/:style/:basename.:extension"
accepts_nested_attributes_for :resource_books, :resource_games
这是我的ResourceGame
模型
class ResourceGame < ActiveRecord::Base
belongs_to :resource, :class_name => ResourceGame, :foreign_key => :resource_id
attr_accessor :add_resources
has_attached_file :image, :styles => { :small => "100x120>"},
:url => "/assets/games/images/:basename/:style/:basename.:extension",
:path =>":rails_root/public/assets/games/images/:basename/:style/:basename.:extension"
accepts_nested_attributes_for :add_resource
如果图像存储在资源表中,我将检索并填充表格,如下所示:
在我的Resources
控制器中:
@latest_resources = Resource.paginate(:page => params[:page],:order => "id DESC", :per_page => 10)
然后在我看来:
<% @latest_resources.each do |project| %>
<tr>
<td><%= image_tag project.image.url(:small) %></td>
<td><%= project.resouce_type_name %></td>
<td><%= project.name %></td>
<td><%= project.url %></td>
</tr>
<% end %>
图像存储在resources_game
表中,那么我应该怎么做才能在我的视图中的image_tag
中进行检索以获取它?
答案 0 :(得分:0)
您需要使用form_for
并构建嵌套表单。这是instructions,过去然后ping我。
@resource.resourcegames
是一个数组,因为您有has_many
关系,因此当您使用form_for
时,您可以拥有1个嵌套表单或多个嵌套表单。
用法
Paperclip的基础非常简单:声明您的模型具有has_attached_file方法的附件,并为其命名。
Paperclip将包含最多四个属性(所有属性都以该附件的名称为前缀,因此如果您愿意,每个模型可以有多个附件),并为它们提供友好的前端。这些属性是:
<attachment>_file_name
<attachment>_file_size
<attachment>_content_type
<attachment>_updated_at
默认情况下,Paperclip只需要_file_name即可运行。如果您想使用内容类型验证,则需要添加_content_type。
有关传递给has_attached_file的选项的更多信息,请参阅Paperclip :: ClassMethods的文档。
以下链接有几个指南
Rails + Paperclip - Update/Edit multiple images
https://github.com/thoughtbot/paperclip/issues/1734
https://groups.google.com/forum/#!topic/rubyonrails-talk/Waxw8D6seRc
https://sleekd.com/general/adding-multiple-images-to-a-rails-model-with-paperclip/
答案 1 :(得分:0)
我找到了一个适用于我的解决方案,它将resource_games模型包含在控制器中的数组中。
@latest_resources = Resource.find(:all, :include => :resource_games)
并在视图中调用:
<% @latest_resources.each do |project| %>
<tr>
<% project.resource_games.each do |resourcegames| %>
<td><%= image_tag resourcegames.image.url(:small) %></td>
<% end %>
<td><%= project.resouce_type_name %></td>
这样我就可以同时使用多个表中的数据填充表格。