Ruby on rails 在RubyonRails中扩展ActiveRecord::Base时,如何指定列名和类型?
请原谅我的无知,如果我错过了一些非常琐碎的事情,我对RoR是非常陌生的 来自Django的背景,我记得模特们Ruby on rails 在RubyonRails中扩展ActiveRecord::Base时,如何指定列名和类型?,ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,请原谅我的无知,如果我错过了一些非常琐碎的事情,我对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(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
class Post
在扩展ActiveRecord::Base
时,是否有办法写入列名和字段类型,而不是只在迁移文件中使用它们?
谢谢,非常感谢您提供的任何帮助。attr\u accessible已被弃用,并且控制器中的强大参数将取代it功能 如果要在模型文件中获取模式信息列表,可以在文件顶部对其进行注释。这在某种程度上是最佳实践,但我不认为它使用得太多。我个人不喜欢这样,只使用模式 发布最佳实践和注释: 要自动注释的Gem:
ActiveRecord最奇妙的一点是,您不需要进行任何映射,因为所有字段都是使用当前模式自动映射的。当然,如果需要,可以覆盖默认映射,但是这种情况非常罕见
这种方法被称为“约定优先于配置”,在Rails中随处可见——它为您试图实现的目标假设了最常见的参数,因此它节省了大量不必要的编码和映射。一开始可能会觉得很奇怪,尤其是你需要学习如何覆盖这些默认值,但我保证,当你习惯它时,你会喜欢它的。:) 你的意思是说rails中没有办法做到这一点,我的意思是我知道我可以发表评论,但是rails没有语法可以做到这一点?我不知道有什么方法可以做到这一点。即使有一种方法,您也不应该在Rails中这样做。这将是走出黄金之路的一步。使用迁移有什么问题?如果确实要在模型中设置某些内容,可以使用alias_属性。不过,您需要有一个已经存在的列名。别名属性:新列名称,:真实列名称