4

我正在尝试生成一些模型,但它们是在没有属性的情况下生成的。

我使用的是 linux 系统,rails 版本是: rails --version Rails 4.0.0

我尝试使用以下命令生成模型:

rails g scaffold Bsdsd description:string test:string oaso:integer

rails g model Asdsd description:string test:string oaso:integer

第一个结果是这个空类模型,其他一切正常:

class Bsdsd < ActiveRecord::Base
end

第二个结果是测试文件、迁移文件(包含属性)和这个类模型:

class Asdsd < ActiveRecord::Base
end

我该如何纠正这种行为?

4

3 回答 3

7

模型属性是从数据库列中推断出来的,因此您不需要在模型类中指定它们。

在 Rails 3.2 中你有(如果我没记错的话)

# attr_accessible :description, :test, :oaso

生成的线。但是受保护的属性在 Rails 4.0 中已被弃用,并被强参数机制所取代。

于 2013-10-11T17:25:08.900 回答
2

你所做的一切都是错的。但是您正在检查错误的文件。查找 CreateAsdsdsMigration(在迁移目录中)文件,您将在那里看到自动生成的字段

于 2013-10-11T17:28:19.040 回答
0

对于那些来自 Grails 或 Django 的人,请注意 Rails 首先创建数据库 - 而不是相反, domainclass.groovy 或 models.py 在您定义它们之后为您创建数据库表。寻找 yourapp/db/schema.rb 里面是你所有的类和它们的字段定义。

于 2015-03-07T04:00:29.773 回答