ruby - 在没有 attr_accessible 的 Rails 4 中 self 记录 ActiveRecord 类文件

标签 ruby activerecord ruby-on-rails-4

问题:
在后 attr_accessible Rails 4 世界中,您建议以何种方式(如果有的话)注释您的 ActiveRecord 模型类文件以传达其(数据库)属性?

进一步思考

作为 Rails 3 -> 4 升级的一部分,我们正在做一个切换,并且很高兴地从 attr_accessible 切换到 Controller 中的强参数。我理解并同意通过此开关提高安全性。如果您想了解更多,信息就在那里,而且不难找到。

但是,在我的 Rails 3 世界中,我喜欢在模型文件的顶部提醒我哪些属性构成了一个类。特别是当我们正在走向一个 ActiveRecord 类只是 DAO 的世界时,类除了数据库属性的集合之外还有什么?我不想为了记住它们而转到 schema.rb 文件。

我是不是想错了?在 DAO 世界中,我是否应该创建我的 ActiveRecord 模型类文件然后不再打开它?

我知道 annotate_models gem并在过去使用它。我不喜欢在注释掉的行中描述属性。 (不可读,骇人听闻,脆弱)

想法?意见?

最佳答案

怎么样:

Person.column_names

如果您使用的是具有控制台功能的 IDE 或编辑器,这将成为提醒有哪些属性的简单方法。我不是 Ruby 或 Rails 专家,在这里还是个新手,但我几乎只使用 Rails 4,看起来您不需要经常在模型中看到属性。参数在 Controller 中被列入白名单,因为那是它们通常会被使用的地方,不是吗?如果您不想使用注释,您可以在模型中存储一个属性数组:

my_attr = [:fname, :lname, :age, :height, :weight]

但这真的比评论有用吗?会不会有一些属性本来在 attr_accessible 中,但不在 Controller 的白名单中?如果你把一些代码放在每次运行时都会运行的 rake 任务中,那将是一个技巧

rake db:...

这会更新您模型中的 my_attr 数组,这样您在修改模型时就不必记得这样做了。我进入我的模型以添加类方法和范围,所以我确实看到了其中的值(value)。但我在 RubyMine 工作,所以如果我需要提醒不在我的白名单中的列,我只需单击左侧的数据库选项卡。

关于ruby - 在没有 attr_accessible 的 Rails 4 中 self 记录 ActiveRecord 类文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19917022/

相关文章:

ruby-on-rails - Rails 4 按模型方法求和

Ruby:如何在正则表达式中匹配双引号

ruby-on-rails - sidekiq-superworker 的 superjob 完成时调用函数

ruby-on-rails - Rails 回调在不同环境下表现不同

ruby-on-rails - 用户、公司、介绍人之间的关系模型

deployment - rails 4 + mina 部署失败

ruby-on-rails - 把东西变成物体我应该疯狂到什么程度?

ruby-on-rails - has_one 关系如果超过一个则自动设置为 nil

ruby-on-rails - git push heroku master : Error occurred while installing sqlite3

ruby-on-rails - Rails 环境配置 : `method_missing' : undefined method `action_mailer'