- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用自定义类型列将 STI 添加到现有表中。我们称这个taste_type为Fruit,对应的模型为Fruit。
在水果模型中我有:
set_inheritance_column :taste_type
在添加 STI 的迁移中,我有:
class AddSTI < ActiveRecord::Migration
def self.up
add_column :fruits, :taste_type, :string, :limit => 100, :null => false
Fruit.reset_column_information
Fruit.find_by_id(1).update_attributes({:taste_type => 'Sour'})
end
def self.down
remove_column :fruits, :taste_type
end
end
当我运行迁移时,出现以下错误:
Mysql::Error: Column 'taste_type' cannot be null: ...
知道发生什么事了吗?如果我注释 Fruit 模型中的 set_inheritance_column,然后在运行迁移后取消注释,我就可以运行迁移。但显然,我不想这样做。
最佳答案
taste_type
列不能为空。数据库会抛出错误,因为您正在向包含现有行的表添加新列(不能为空)。
解决此问题的一种方法是向列添加默认值,然后重置默认值。
add_column :fruits, :taste_type, :string, :limit => 100, :null => false,
:default => "Sour"
change_column :fruits, :taste_type, :string, :limit => 100, :null => false
Fruit.reset_column_information
Fruit.find_by_id(1).update_attributes({:taste_type => 'Sour'})
另一种方法是在截断 fruits
表后运行迁移。
关于mysql - 将 STI 添加到现有表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2616957/
伙计们,我们正在构建一种地址簿,我们有用户、联系人和一个名为 UserEntity 的父表。我们希望通过一个名为关系的表将它们以多对多关联的方式关联起来,这种关系必须在 UserEntity 表中的自
我这里有一个多态关联和 STI 的案例。 # app/models/car.rb class Car true end # app/models/staff.rb class Staff :bor
尝试在测试引导加载程序上实现硬件中断。异常(exception)正在工作(因此发现它是 GPF)。当尝试sti时,会发生GPF。这是我的主要代码: cli lgdt [gdt_desc
尝试在测试引导加载程序上实现硬件中断。异常(exception)正在工作(因此发现它是 GPF)。当尝试sti时,会发生GPF。这是我的主要代码: cli lgdt [gdt_desc
我目前有多个非常相似的表。我可能应该用 STI 创建它们。 TypeOne # 如果我尝试使用 becomes,它似乎改变了类,但我找不到 BaseModel 中的记录 TypeOne.last.b
我很难弄明白这到底是怎么回事。 我有一个模型 Page,它有两个子类,分别称为 QeopPage 和 GymPage。我正在尝试创建一个 gympage,但两个类中的验证一直失败,并显示 'Valid
我对 Doctrine 很陌生,所以欢迎任何一般性建议。我正在努力实现以下目标: 一个页面可以同时包含视频和照片。两者都是媒体和共享属性,所以我认为单表继承是有意义的。以下是我的设置的相关部分: 页面
因此,在编写了一个大的 .tex 文件并使用了许多包之后,我想存档所有内容,不仅是 .tex .jpg 文件,还有 .sty 文件。 这是因为有时sty文件中的某些选项被更改,然后我无法编译该文件。
我的要求是编写一个查询以根据模型的嵌套关联在 STI 上检索基于模型的记录。 这是我的模型的样子: class Loan (cities) { joins(:address).where("addre
我需要能够为用户安排提醒。所以我想我可以创建一个基本模型 Reminder并使用 STI 生成覆盖函数 fire() 的后代类, 在提醒触发时调用。但是不同的用户角色有相似类型的提醒。所以他们需要命名
在我的 Rails 应用程序中,我有这样的模型 class Account :owner_id end 和 class DiscountSystem 'Account::DiscountSys
使用 STI 时,从与 rails 3 的 has_many 关联中获取集合时,我遇到了一些奇怪的行为。我有: class Branch 2 Branch.first.admins.count =>
设置 我有一个像这样的 STI 设置: class Transaction { where type: Deposit } end class Deposit { where state: :pe
class Upload < ActiveRecord::Base has_many :comments end class Gallery < Upload has_many :im
生成 pdf 投影仪文件时出现以下错误。我正在尝试解决这个问题,但我还没有成功。如果您能提供帮助,我将不胜感激。 ! LaTeX Error: File `tabu.sty' not found. T
我正在使用Devise和Rolify开发Rails 3.2.13应用程序,我需要具有3种用户类型,如下所示: class User 'User one', :email => 'userone@te
我在使用 STI 和多态关联时感到困惑,所以什么时候应该使用 STI 或多态关联? 最佳答案 以下是可以帮助您做出决定的不同场景 数据库结构。STI 仅使用一张表来存储数据库中的所有类。关系,而多态关
我在raspbian中使用python2。我正在尝试在树莓派上运行 esptool.py。 导入错误:没有名为 sty 的模块 最佳答案 来自https://pypi.org/project/sty/
我想使用自定义类型列将 STI 添加到现有表中。我们称这个taste_type为Fruit,对应的模型为Fruit。 在水果模型中我有: set_inheritance_column :taste
我想知道,将一个子类记录转换为另一个子类记录的 Rails 方法是什么,仅更改类型是行不通的,而且从父类(super class)到子类,反之亦然。 提前致谢 马尔科夫 最佳答案 您所要做的就是更改类
我是一名优秀的程序员,十分优秀!