如果卖家卖东西,我无法显示谁买了它的用户。销售、产品和用户模型
<% @sales.each do |sale| %>
<tr>
<td><%= link_to sale.product.title, pickup_path(sale.guid) %></td>
<td><%= time_ago_in_words(sale.created_at) %> ago</td>
<td><%= sale.seller_email %></td>
<td><%= sale.amount %></td>
如果我将其更改为<%= sale.buyer_email %>
,它只会显示当前用户以及他们刚刚购买的商品,而不是谁购买了他们的商品。这是我检查控制台后得到的结果,seller_email
为零,最后一次销售的金额为零。我如何解决这个问题,使卖家可以看到谁去他们的项目?
实际上,应该更改模型结构以创建正确的体系结构。
您有用户、产品和销售模型。因此,关联应该如下所示:
class User
has_many :products
has_many :sales
has_many :customers, :through => :sales
end
class Product
has_many :sales
belongs_to :user
has_many :buyers, :through => :sales
has_many :sellers, :through => :sales
end
class Sale
belongs_to :seller, :class_name => "User"
belongs_to :buyer, :class_name => "User"
belongs_to :product
end
那么你就可以访问所有的买家&卖方按以下代码行销售产品。
product.buyers
product.sellers
似乎你的current_user
在Transaction
控制器是nil。
我可以看到你在Transaction Controller
中缺少了before_action :authenticate_user!
。
所以你可以通过使用像pry这样的调试gem来检查这一点,尝试在product.sales.create!(buyer_email: current_user.email)
之前添加binding.pry
,看看current_user
是否有一个值
HTH