使用Rails 3(尚未确认Rails 2.x中是否有不同之处),当您使用生成器创建模型时,例如:
rails generate model Person first_name:string last_name:string
它不会在它创建的Person模型类上声明first_name或last_name属性。我知道它仍然有效,即迁移在数据库中创建字段,我可以在动态语言魔术时在运行时设置它们。但是,我认为模型类是一种“文档”,可用于模型的可用属性。因此,我很奇怪生成器不会添加它们。
我一直在补充:
attr_accessor :first_name, :last_name
到我的模型类。甚至更好,attr_accessible。但即便如此,它也不清楚数据类型是什么。
我只是好奇其他人的想法:
更新:好的忘了attr_accessor然后,我明白为什么这没有意义。我们假设我应该添加attr_accessible。仍然希望人们对上述问题有所了解。
答案 0 :(得分:0)
不 为模型属性添加attr_accessor
- 您将破坏其预期的功能。 attr_accessible
很好并且通常会被推荐,但只有在mass-assignment protection目的的白名单中才需要它们。您无需在模型中添加任何内容即可使getter / setter工作; ActiveRecord通过检查数据库架构为您完成此操作。
如果您想在模型中使用“文档”,请查看annotate gem,它将自动生成字段信息,作为模型/灯具/测试/规格顶部的注释。