4

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

进一步的想法

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

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

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

我知道annotate_models gem并在当天使用它。我不喜欢在注释掉的行中描述属性。(不可读,hackish,脆弱)

想法?意见?

4

1 回答 1

1

怎么样:

Person.column_names

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

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

但这真的比评论更有用吗?是否会出现 attr_accessible 中的属性不在控制器的白名单中的情况?如果您将一些代码放在每次运行时都会运行的 rake 任务中,那将是一个技巧

rake db:...

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

于 2013-11-12T06:50:59.890 回答