gpt4 book ai didi

ruby-on-rails - 在 ruby​​ on rails 中创建新表

转载 作者:数据小太阳 更新时间:2023-10-29 06:35:44 25 4
gpt4 key购买 nike

我尝试在 Rails 中创建一个新表。我发现并遗憾地尝试的每个例子都不适合我......所以这就是我到目前为止所尝试的:(我使用 Ruby 1.9 版和 Rails 3.2.13 版在终端中制作一个新模型:

rails generate model content content_id:auto-generated, law_id:integer, parent_id:integer, titel:string, text:string, content:string, url:string

生成以下代码:

class CreateContents < ActiveRecord::Migration
def change
create_table :contents do |t|
t.auto-generated, :content_id
t.integer, :law_id
t.integer, :parent_id
t.string, :titel
t.string, :text
t.string, :content
t.string :url

t.timestamps
end
end
end

如果我尝试 rake db:migrate,我会收到以下错误消息:

 syntax error, unexpected ',', expecting keyword_end
t.auto-generated, :content_id
^

如果我删除“,”,我会收到此错误消息:

syntax error, unexpected tSYMBEG, expecting keyword_do or '{' or '('
t.auto-generated :content_id
^

我的研究让我也采用了这种创建表格的方式:

class CreateContents < ActiveRecord::Migration
def change
create_table :contents do |t|
t.auto-generated "content_id"
t.integer "law_id"
t.integer "parent_id"
t.string "titel"
t.string "text"
t.string "content"
t.string "url"

t.timestamps
end
end
end

如果我尝试用那个例子来收集数据库,我会得到这个错误信息:

syntax error, unexpected tSTRING_BEG, expecting keyword_do or '{' or '('
t.auto-generated "content_id"
^

我做错了什么?

最佳答案

自动生成 不是受支持的列类型。

Active Record 支持以下数据库列类型:

:binary
:boolean
:date
:datetime
:decimal
:float
:integer
:primary_key
:string
:text
:time
:timestamp

更多信息请参见 http://guides.rubyonrails.org/migrations.html#supported-types

Rails 会自动为您创建列 id,因此只需将您的迁移编辑为以下内容

class CreateContents < ActiveRecord::Migration
def change
create_table :contents do |t|
t.integer "law_id"
t.integer "parent_id"
t.string "titel"
t.string "text"
t.string "content"
t.string "url"

t.timestamps
end
end
end

关于ruby-on-rails - 在 ruby​​ on rails 中创建新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16388756/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com