0

问题是我有一个表客户,其中包含一些与客户相关的列,例如客户 ID。我也有一列user_id这样客户数据只与一个用户有关。

class Customers
belongs_to :user
end

class Users
has_many :customers
end

现在我在customersID 上有了:unique。但这使得每个 customerID 在整个表格中都是唯一的。我想要的是每个 user_id 的 customerID 是唯一的。

有什么想法或建议吗?

编辑:问题似乎有点不清楚。

我有一个表用户

user1
user2
user3

我也有一个表客户,每个客户从创建他的用户那里获得一个 user_id。用户可以输入一个customerID,每个用户应该是唯一的。

customerID=1 user_id1
customerID=2 user_id1
customerID=1 user_id3
customerID=3 user_id1
customerID=1 user_id2
...

我通过@customers = current_user.customers我的 CustomersController 收集客户数据。customerID 是一个简单的t.integer "customerID"

4

2 回答 2

0

似乎您希望客户拥有用户,对吗?尝试这样的事情:

class Customer
  has_one :user
end

class User
  belongs_to :customer
end

这样您就可以将客户绑定到一个特定的 user_id。然后你可以做这样的事情:

@customer = Customer.where(name: "company name").first
@user = @customer.user  #this will find the customer's unique user
于 2013-05-08T21:25:52.250 回答
0

为什么不通过客户表上的索引强制对 Customer_id、iser_id 的唯一性?您可以创建类似的迁移

add_index_to_costumers.rb

class AddIndexToCustomers < ActiveRecord::Migration
  def change
    add_index :customers, [:customerID,:user_id], unique: true
  end
end

它应该在数据库级别确保 customerID/user_id 对是唯一的。如果我很好理解你的问题,那就是你所期望的。

希望这可以帮助

干杯

于 2013-05-09T08:39:33.360 回答