1
我在教孩子们如何在Rails中做一个特定的应用程序,它需要一个关于某人对其他人负责的资源。例如,这里有2种型号:如何命名为形容词或介词的Rails资源?
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
我没有测试过高于这个特定的代码,但这个概念对我来说很有意义......虽然responsible
和responsible for
是一个形容词,介词和分别,不是名词因为Rails中的资源应该是。有一个更好的方法吗? Rails的多元化或其他操作会以其他方式混淆?有更好的名词吗?
您可能需要在'through'键后设置'source'。所以作为一个例子,你应该有'has_many:responsible_for_people,通过:: responsible_fors,source:responsible_for'。 – Ashitaka 2013-02-14 23:33:44