ruby-on-rails – rails:为从超类继承的模型创建脚手架?

ruby-on-rails – rails:为从超类继承的模型创建脚手架?,第1张

概述我是Rails的新手,仍然让我的脚湿透了,所以请原谅我,如果这是微不足道的或“做错事”. 我想为一些脚手架模型创建一个超类.例如,我想为男人和女人创建一个脚手架,但我希望他们都能从People超类中继承;男人和女人会从人类继承高度和体重等领域. 我在哪里/如何定义这个People超类?如何通过脚手架定义子类Men和Women? 这是我考虑过用我的应用程序做的事情.我还没有这样做,如果你是铁杆新手, 我是Rails的新手,仍然让我的脚湿透了,所以请原谅我,如果这是微不足道的或“做错事”.

我想为一些脚手架模型创建一个超类.例如,我想为男人和女人创建一个脚手架,但我希望他们都能从People超类中继承;男人和女人会从人类继承高度和体重等领域.

我在哪里/如何定义这个People超类?如何通过脚手架定义子类Men和Women?

解决方法 这是我考虑过用我的应用程序做的事情.我还没有这样做,如果你是铁杆新手,我不会推荐它.我要么完全制作单独的模型,要么制作一个模型,并且具有属性gender,该属性应该是0或1,然后创建一个返回相应性别的字符串的方法.

编辑

所以我打开了rails控制台,从我所看到的,它完全可能,你需要做的只是声明类,如果你想使用不同的表,set_table_name

class This < That  set_table_name :thisendclass There < This   set_table_name :thereend

或者你可以使用一张桌子,但如果你试图保持干燥,我会用两张.

如果您想使用脚手架发电机,您将需要为您想要观看的每个级别(男性和女性)运行典型的rails g scaffold Men.这个生成的模型继承自ActiveRecord :: Base类.继承标记小于符号(<).

# THESE WILL BE THE DEFAulT GENERATED MODELSclass Men < ActiveRecord::Baseendclass Women < ActiveRecord::Baseend

然后,您将手动创建超类用户

class User < ActiveRecord::Baseend

然后编辑Men and Women模型以继承User

# men.rbclass Men < Userend# women.rbclass Women < Userend

假设您想要使用一个表进行子类化,您可以对该表进行迁移,然后将attr_accessible添加到相应的子类中.

attr_accessible是rails安全功能.它确定可以在质量分配中设置哪些属性.任何与安全性,网站排名等相关的内容都不应该是可访问的.

例:

attr_accessible :favorite_food,:interests,:password,:email # THIS IS GOODattr_accessible :admin,:has_access_to_missile_launch_codes # THIS IS BAD

因为那时有人可能通过传递破坏你的安全系统

params => {:man => {:admin =>真的}}

重点是使用这些attr_accessible将决定哪种类型的用户可以设置什么.显然,你可以通过在超类中放置共享功能来解决这个问题.希望这可以帮助

您还应该阅读super关键字和self关键字.如果您运行继承的设置,您最终将要使用这些设置.

总结

以上是内存溢出为你收集整理的ruby-on-rails – rails:为从超类继承的模型创建脚手架?全部内容,希望文章能够帮你解决ruby-on-rails – rails:为从超类继承的模型创建脚手架?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1294393.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存