我对这一点感到有点困惑。我很感激输入。
概述
我正在尝试获取此友谊模型中所需的输出,即当前用户的朋友已上传的文件。
模型
与所有其他友情模式一样,User
自我引用为:friend
。
class Share < ActiveRecord::Base
belongs_to :user
belongs_to :friend, :class_name => "User"
end
这是我的Paperclip模型:
class Upload < ActiveRecord::Base
belongs_to :user
has_attached_file :document
end
这是通过Devise生成的:
class User < ActiveRecord::Base
attr_accessor :login
has_attached_file :image, :styles => { :medium => "120x120!" }
has_many :uploads
has_many :shares
has_many :friends, :through => :shares
has_many :inverse_shares, :class_name => "Share", :foreign_key => "friend_id"
has_many :inverse_friends, :through => :inverse_shares, :source => :user
end
尝试
我所达到的最远的是我能够输出用户朋友':username(s)
的级别,其中@check = current_user
位于控制器中:
<% @check.shares.each |j| %>
<%= j.friend.username %>
<% end %>
问题
如何输出当前用户的每个朋友的:file_name
,:file_type
和:document
?我打算让我的页面看起来像这样:
用户的朋友1档
用户的朋友2档
谢谢。
答案 0 :(得分:1)
Paperclip将包含最多四个属性(所有属性都以前缀为准) 附件的名称,因此每个模型可以有多个附件 你希望)并给他们一个友好的前端。这些属性是:
<attachment>_file_name <attachment>_file_size <attachment>_content_type <attachment>_updated_at
鉴于此,以及您的附件名称“document”:
<% current_user.shares.each do |share|%>
<%= share.friend.username %>
<% share.friend.uploads.each do |upload| %>
<%= upload.document_file_name %>
<%= upload.document_content_type %>
<% end %>
<% end %>