这是记录购买的关系,我有用户之间,千兆(产品),和购买表格。
class User < ActiveRecord::Base
has_many :gigs
has_many :purchases, foreign_key: 'buyer_id'
has_many :sales, foreign_key: 'seller_id', class_name: 'Purchase'
end
class Gig < ActiveRecord::Base
has_many :purchases
has_many :buyers, through: :purchases
has_many :sellers, through: :purchases
end
class Purchase < ActiveRecord::Base
belongs_to :gig
belongs_to :buyer, class_name: 'User'
belongs_to :seller, class_name: 'User'
end
为了记录购买我在控制器使用
def downloadpage
ActiveRecord::Base.transaction do
if current_user.points >= @gig.pointsneeded
@purchase = current_user.purchases.create(gig: @gig, seller: @gig.user)
if @purchase
current_user.points -= @gig.pointsneeded
@gig.user.points += @gig.pointsneeded
current_user.save
if @gig.user.save
render 'successful_download', locals:{link:@gig.boxlink}
end
end
else
redirect_to :back, notice: "You don't have enough points"
end
end
end
一切正常当买方从卖方购买东西时,点账户之间转移,而买方被重定向到最后一次演出。
在我的意见,我可以做
<h1>You downloaded <%= current_user.purchases.count %> boxes</h1>
它会显示“音乐会”做买家的数量。
现在,我想说明不只是数量,但标题和他bought.This产品的图片是我的尝试
<div class="row experiment">
<% current_user.purchases.each do |gig| %>
<div class="well for-h1-gig-second col-xs-6 col-sm-4 col-lg-3 ">
<%= link_to (image_tag gig.image.url(:medium), :class=>"img-responsive"), gig %>
<h1><%= link_to gig.title, gig %></h1>
</div>
<% end %>
</div>
但它说,它无法找到的形象和称号。 所以我尝试current_user.purchases.gig.each do |gig|
没有成功。
我如何解决它? PS:请随时编辑我的头衔,为未来的读者,我不能更好地制定,谢谢。