0

問題は、customersID のようないくつかの顧客関連の列を持つテーブル customers があることです。user_idまた、顧客データが1人のユーザーにのみ関連するように列があります。

class Customers
belongs_to :user
end

class Users
has_many :customers
end

これで、customersID に :unique が追加されました。ただし、これにより、すべての customerID がテーブル全体で一意になります。私が欲しいのは、customerID が user_id ごとに一意であることです。

アイデアや提案はありますか?

編集:質問は少し不明確です。

私はテーブルユーザーを持っています

user1
user2
user3

また、各顧客が自分を作成したユーザーから user_id を取得するテーブル customers があります。ユーザーは、ユーザーごとに固有の customerID を入力できます。

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

CustomersControllerを介して顧客データをクラッドします@customers = current_user.customers。customerID は単純です。t.integer "customerID"

4

2 に答える 2

0

Customers テーブルのインデックスを介して 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 に答える
0

Customer に User を持たせたいようですが、それでよろしいですか? 次のようなことを試してください:

class Customer
  has_one :user
end

class User
  belongs_to :customer
end

こうすることで、顧客を 1 つの特定の 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 に答える