-
validates_format_of :name, :with => /\A(\w(?:[/’ -.])?)*\Z/i
What does the ‘i’ do at the end of the regular expression?
-
Should I do validation for attributes that are not from a form?
-
def self.up
create_table :customers do |t|
t.column :number, :integer, :limit => 4
end
end
As far as I know, Mysql 5.0.27 uses Int for number here. Will also a
small number need 4 bytes in the database?
validates_format_of :name, :with => /\A(\w(?:[/’ -.])?)*\Z/i
What does the ‘i’ do at the end of the regular expression?
/i makes a regex case-insensitive. See
http://www.ruby-doc.org/core/classes/Regexp.html#M001219
for other Regexp options
Hi Martin,
Martin Luy wrote:
-
validates_format_of :name, :with => /\A(\w(?:[/’ -.])?)*\Z/i
What does the ‘i’ do at the end of the regular expression?
It makes the match case insensitive
-
Should I do validation for attributes that are not from a form?
Yes. If you expect a field to conform to condition that is not inherent
in it’s column type you should validate the data. It will catch bugs
and keep you data more coherent.
-
def self.up
create_table :customers do |t|
t.column :number, :integer, :limit => 4
end
end
As far as I know, Mysql 5.0.27 uses Int for number here. Will also a
small number need 4 bytes in the database?
Yes. It really isn’t a big deal. There are ways around this, but
before you go hacking into the code ask yourself if this isn’t premature
optimization. unless you are storing ~10^6 rows your space savings will
not be appreciable.
J. F. Miller
Martin Luy wrote:
-
validates_format_of :name, :with => /\A(\w(?:[/’ -.])?)*\Z/i
What does the ‘i’ do at the end of the regular expression?
Case-insensitive
-
Should I do validation for attributes that are not from a form?
Depends on how much you trust yourself. Where is the data coming from?
-
def self.up
create_table :customers do |t|
t.column :number, :integer, :limit => 4
end
end
As far as I know, Mysql 5.0.27 uses Int for number here. Will also a
small number need 4 bytes in the database?
As far as I can tell, it doesn’t matter what “limit” you give to an int
in MySQL , it always uses 4 bytes. I don’t believe you have access to
the various int types (bigint, smallint, mediumint) through migrations.
-matthew