app*_*ver 8 ruby sql timestamp ruby-on-rails
Ruby on rails具有t.timestamps方法,该方法创建两列,created_at和updated_at.如何只创建created_at列?
这有效
class CreateLinesSources < ActiveRecord::Migration
def change
create_table :lines_sources do |t|
t.timestamps null: false
end
end
end
Run Code Online (Sandbox Code Playgroud)
这两个我想工作但失败了
class CreateLinesSources < ActiveRecord::Migration
def change
create_table :lines_sources do |t|
t.created_at null: false
end
end
end
Run Code Online (Sandbox Code Playgroud)
和
class CreateLinesSources < ActiveRecord::Migration
def change
create_table :lines_sources do |t|
t.timestamps null: false
remove_column updated_at
end
end
end
Run Code Online (Sandbox Code Playgroud)
t.datetime :created_at, null: false
Run Code Online (Sandbox Code Playgroud)
就像其他任何列一样。由于列名,Rails仍将负责魔术更新。
两次尝试都没问题,但包含语法错误.
第一次尝试的问题是t.是基于数据类型而不是列名.
class CreateLinesSources < ActiveRecord::Migration
def change
create_table :lines_sources do |t|
t.datetime :created_at, null: false
end
end
end
Run Code Online (Sandbox Code Playgroud)
第二次尝试的问题是remove_column在create_table块内部不起作用.您可以将其移出块外,并提供正确的语法来删除列.
class CreateLinesSources < ActiveRecord::Migration
def change
create_table :lines_sources do |t|
t.timestamps null: false
end
remove_column :line_sources, :updated_at, :datetime
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4169 次 |
| 最近记录: |