1

私はこれについてしばらく考えていました、そしてそれは十分に単純に見えますが、私はそれを「正しく」理解することができないようです。私が持っているのは、基本的に、会社と従業員の2つのクラスです。これは、会社に多くの従業員がいて、従業員が会社に属するように設定されています。また、私はSTIを使用しているので、会社<ユーザーおよび従業員<ユーザーです。それで十分です。現在、従業員は2つのことしかできません。自分のプロファイルを表示して更新することです。一方、企業は従業員を作成できます。アプリケーションでは、これが従業員を作成する唯一の方法です。私の問題は、これをできるだけ単純にしたいということです。また、ある時点でAPIを作成する可能性があることも考えています。だから私の質問は、ここで良い習慣と見なされるものは何ですか?従業員を会社の下にネストされたリソースにする必要がありますか?Companies名前空間の下にEmployeesリソースを作成する必要がありますか?すべてのアクションをemployees_controllerに保持してから、アクセス許可を使用して企業がそれらにアクセスできるようにする必要がありますか?私がしようとすることはすべて「正しくない」と感じてしまうようです。

4

1 に答える 1

0

あなたが求めていることから、ユーザーには2つのタイプがあるようです。従業員ではない通常のユーザーと従業員です。Railsにはモデル間の関係がbelongs_toあります。has_manyしたがって、会社の場合は次のことができます。

class Company < ActiveRecord::Base
   has_many :users, :dependent => :destroy


class User < ActiveRecord::Base
   attr_accessible :is_employee
   belongs_to : company

Userモデルには、ブール値を格納する列名がis_employeeあります。そうすれば、従業員と非従業員の両方を持つことができます。で、破壊されたCompany場合、それはなくなります。CompanyUsers

これらの関係に関するその他のドキュメントは、http: //api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.htmlにあります。

于 2012-08-31T15:04:24.890 に答える