它在数据库中显示为nil,这可以解决主要问题吗?

时间:2015-05-24 11:06:34

标签: ruby-on-rails ruby-on-rails-3

如果卖家卖东西,我就无法向购买它的用户展示。使用销售,产品和用户模型

<% @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为零,上次销售的金额为零。我如何解决这个问题,以便卖家可以看到谁去他们的项目?

2 个答案:

答案 0 :(得分:1)

实际上,应该更改模型结构以创建正确的架构。

您拥有用户,产品和销售模型。所以协会应该如下。

+ theme(strip.background = element_blank(), strip.text = element_blank())

然后您就可以访问所有买家&amp;按照以下代码行销售产品。

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

答案 1 :(得分:0)

it seems like your current_user in the Transaction controller is nil.

I can see you are missing the before_action :authenticate_user! in the Transaction Controller.

So you could check this by using a debug gem like pry , try to add binding.pry just before product.sales.create!(buyer_email: current_user.email) and see if the current_user has a value

HTH