1

Rails で特定のアプリを実行する方法を子供たちに教えています。それには、誰かが他の誰かの責任を負うというリソースが必要です。たとえば、次の 2 つのモデルがあります。

class User < ActiveRecord::Base
  attr_accessible :name
  has_many :responsible_fors, class_name: 'ResponsibleFor', foreign_key: 'responsible_by_ user_id'
  has_many :responsible_for_people, through: :responsible_fors
  has_many :responsible_bys, class_name: 'ResponsibleFor', foreign_key: 'responsible_for_user_id'
  has_many :responsible_by_people, through: :responsible_bys
end
class ResponsibleFor < ActiveRecord::Base
  attr_accessible :relationship, :responsible_by_id, :responsible_for_id
  belongs_to :responsible_by, class_name: 'User'
  belongs_to :responsible_for, class_name: 'User'
end

上記の特定のコードはテストしていませんが、概念は理解できます... responsibleandresponsible forはそれぞれ形容詞と前置詞ですが、Rails のリソースが想定しているような名詞ではありません。これを行うより良い方法はありますか?Rails の複数形化やその他の操作は、これを別の方法で混乱させるのでしょうか? より良い名詞はありますか?

4

1 に答える 1

0

Rails と複数形で問題が発生することはないと思います。

1.9.3p385 :023 > "responsible_for".pluralize
=> "responsible_fors" 
1.9.3p385 :024 > _.singularize
=> "responsible_for"

そうは言っても、私はただ行きます:

class User < ActiveRecord::Base
  has_many :responsibilities
  has_many :stakeholders, through: :responsibilities
  has_many :responsible_parties, through: responsibilities
end

class Responsibility < ActiveRecord::Base
  attr_accessible :relationship, :stakeholder_user_id, :responsible_party_user_id
  belongs_to :stakeholder
  belongs_to :responsible_party
end

このコードが実行されるかどうかはわかりませんが (実行されたらショックです)、これを名前付けに使用します。

于 2013-02-14T21:59:15.373 に答える