这是我考虑使用我的应用程序做的事情。我还没有这样做,如果您是 Rails 新手,我不会推荐它。我要么完全制作单独的模型,要么制作一个模型,并拥有属性gender,它应该是 0 或 1,然后制作一个返回相应性别的字符串的方法。
编辑
所以我打开了rails控制台,从我看到的情况来看,完全有可能,你需要做的就是声明类,如果你想使用不同的表,set_table_name
class This < That
set_table_name :this
end
class There < This
set_table_name :there
end
或者您可以使用一张桌子,但如果您想保持干燥,我会使用两张。
如果您想使用脚手架生成器,您必须为每个想要查看的班级(男性和女性)运行典型的 rails g scaffold Men。生成的模型继承自 ActiveRecord::Base 类。继承标记是小于号 (<)。
# THESE WILL BE THE DEFAULT GENERATED MODELS
class Men < ActiveRecord::Base
end
class Women < ActiveRecord::Base
end
然后您将手动创建超类User
class User < ActiveRecord::Base
end
然后编辑Men 和Women 模型以从User 继承
# men.rb
class Men < User
end
# women.rb
class Women < User
end
假设您想使用一个表进行子类化,您可以纠正该表的迁移,然后将 attr_accessible 添加到适当的子类中。
attr_accessible 是一个 Rails 安全功能。它确定可以在批量分配中设置哪些属性。任何与安全性、网站排名等相关的内容都不应被访问。
例子:
attr_accessible :favorite_food, :interests, :password, :email # THIS IS GOOD
attr_accessible :admin, :has_access_to_missile_launch_codes # THIS IS BAD
因为那样的话有人可能会通过通过来破坏您的安全系统
params => { :man => { :admin => true }}
主要的一点是,使用这些attr_accessible 将决定哪种类型的用户可以设置什么。显然,您可以通过将共享功能放在超类中来解决这个问题。希望这会有所帮助
您还应该了解super 关键字和self 关键字。如果您运行继承的设置,您最终会想要使用这些。