0

私は、ユーザー クラスを継承し、独自のデータベース テーブルを持たないユーザー モデルとディーラーおよび顧客モデルを持っています。

class User < ActiveRecord::Base
end

class Dealer < User
  before_save :set_default_values

  def set_default_values
    self.role_id = Role.find_by_handle('dealer').id
  end
end

class Customer < User
    …
end

Dealer_path のようなものが必要で、ロールごとにいくつかのカスタム ロジックが必要なので、スコープは使用しません。

今、ディーラー/顧客モデルにロール依存であることを伝える方法を考えています。これにより、(たとえば) Customer.all を使用して、「顧客」ロールを持つユーザーを取得できます。

誰かが私を正しい方向に向けることができますか?

4

2 に答える 2

0

新しいクラスにデフォルトのスコープを適用することはできませんか?

class Dealer < User
  default_scope { where(:role_id) = Role.find_by_handle('dealer').id }
  ...
end
于 2012-08-11T15:13:04.103 に答える
0

Rails に組み込まれている単一テーブルの継承機能を使用できます。「タイプ」という列をユーザーに追加し、値を「ディーラー」、「顧客」などに設定するだけです。

于 2012-08-11T08:49:47.290 に答える