ruby on rails -它在数据库中显示nil,这能解决主要问题吗?



如果卖家卖东西,我无法显示谁买了它的用户。销售、产品和用户模型

<% @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_userTransaction控制器是nil。

我可以看到你在Transaction Controller中缺少了before_action :authenticate_user!

所以你可以通过使用像pry这样的调试gem来检查这一点,尝试在product.sales.create!(buyer_email: current_user.email)之前添加binding.pry,看看current_user是否有一个值

HTH

相关内容

  • 没有找到相关文章

最新更新