Tag: ruby on rails3.1

Rails生成迁移

我目前已经有了名为Products的迁移,我只是想为这个迁移添加更多的string,比如描述和产品types。 做这个的最好方式是什么? class CreateProducts < ActiveRecord::Migration def change create_table :products do |t| t.string :name t.decimal :price t.text :description t.timestamps end end end

Rails:在数据库中强制空string为NULL

有没有一种简单的方法(即configuration)强制ActiveRecord在数据库中保存空string为NULL(如果列允许)? 这样做的原因是,如果数据库中没有默认值的情况下有一个NULLablestring列,则不设置此值的新logging将包含NULL,而将此值设置为空string的新logging不会为NULL,到我想避免的数据库中的不一致之处。 现在我在模型中做这样的事情: before_save :set_nil def set_nil [:foo, :bar].each do |att| self[att] = nil if self[att].blank? end end 哪些工作,但不是很有效率或干。 我可以把这个分解成一个方法,并将其混合到ActiveRecord中,但是在我走下这条路线之前,我想知道是否有办法做到这一点。

在列中将列types更改为更长的string

在第一次迁移时,我声明了一个字段content是stringActiverecord根据注释gem使它成为string(255)。 在我将应用程序推送到使用postgres的heroku之后,如果我在内容的表单中input一个超过255的string,我得到错误 PGError: ERROR: value too long for type character varying(255) 问题是我需要那个内容来包含一个非常长的string(自由文本,可能是成千上万的字符) 什么variables(是string不适合这个)会接受? 如何创build一个迁移来replace该列的types 谢谢