Ruby on rails 模型上的Rails序列列
我遵循这一点,在我的表(cars)中有一列(CARU代码)像序列一样工作(使用postgreSQL数据库) 因此,我有以下表格:Ruby on rails 模型上的Rails序列列,ruby-on-rails,ruby,model,sequence,Ruby On Rails,Ruby,Model,Sequence,我遵循这一点,在我的表(cars)中有一列(CARU代码)像序列一样工作(使用postgreSQL数据库) 因此,我有以下表格: CREATE TABLE Cars ( id serial NOT NULL, created_at timestamp without time zone NOT NULL, updated_at timestamp without time zone NOT NULL, car_date timestamp without time zone, car_
CREATE TABLE Cars
(
id serial NOT NULL,
created_at timestamp without time zone NOT NULL,
updated_at timestamp without time zone NOT NULL,
car_date timestamp without time zone,
car_code integer DEFAULT nextval('car_code_sequence'::regclass),
CONSTRAINT cars_pkey PRIMARY KEY (id )
)
我的insert语句工作正常:
INSERT INTO cars(created_at, updated_at, car_date) VALUES (now(), now(), now());
--1|Date|Date|Date|2 <--using my car_code_sequence
所以,我的问题是:
我可以更改谁的车型以从insert语句中排除“Car\U code”列(但将“Car\U code”保留在数据库中),即具有与“id”相同的行为)。请尝试在车型中添加此代码:
class Car < ActiveRecord::Base
## --------------------- Ignore columns patch ------
@@ignore_column_pattern = /^car_code/
class << self
alias :all_columns :columns
def columns
@columns_filt ||= all_columns.reject { |col| col.name =~ @@ignore_column_pattern }
end
end
alias :all_attribute_names :attribute_names
def attribute_names
@attr_names_filt ||= all_attribute_names.reject { |att| att =~ @@ignore_column_pattern }
end
## ------------------- / Ignore columns patch ------
end
class-Carclass Car < ActiveRecord::Base
## --------------------- Ignore columns patch ------
@@ignore_column_pattern = /^car_code/
class << self
alias :all_columns :columns
def columns
@columns_filt ||= all_columns.reject { |col| col.name =~ @@ignore_column_pattern }
end
end
alias :all_attribute_names :attribute_names
def attribute_names
@attr_names_filt ||= all_attribute_names.reject { |att| att =~ @@ignore_column_pattern }
end
## ------------------- / Ignore columns patch ------
end