0

如果我错过了一些非常琐碎的事情,请原谅我的无知,我对RoR很陌生。

来自Django背景,我记得模型就像

class Post(models.Model):
    title = models.CharField(max_length=100)
    description = models.TextField()

列名和字段类型都明确指定。

在哪里,当我写这个 rails 命令时

> rails g model Post title:string description:text

我得到的只是

class Post < ActiveRecord::Base
  attr_accessible :description, :title
end

有没有办法在扩展时写入列名和字段类型,而ActiveRecord::Base不是只在迁移文件中使用它们?

谢谢,任何帮助表示赞赏

4

2 回答 2

0

ActiveRecord 最美妙的地方在于您不需要进行任何映射,因为所有字段都使用当前模式自动映射。当然,如果需要,可以覆盖默认映射,但是这种情况非常罕见。

这种方法被称为“约定优于配置”并且在 Rails 中都存在——它假设你想要达到的目标是最常见的参数,因此它节省了大量不必要的编码和映射。一开始可能会觉得很奇怪,尤其是你需要学习如何覆盖这些默认值,但我保证当你习惯它时你会喜欢它的。:)

于 2013-10-18T10:35:27.700 回答
0

attr_accessible 已弃用,强大的参数替换了控制器中的功能。

如果要获取模型文件中的模式信息列表,可以在文件顶部对其进行注释。这在某些时候是最佳实践,但我不认为它被使用得那么多。我个人不喜欢这样,只使用模式。

发布最佳实践和注释: http ://rails-bestpractices.com/posts/68-annotate-your-models

宝石自动注释: https ://github.com/ctran/annotate_models

于 2013-10-18T05:51:55.490 回答