我有一个value
在创建新对象时初始化的变量。但是,这个变量不是我表的列。我只想在我的模型中使用它,并将它用于我的类中的某些方法:
class MyClass < ActiveRecord::Base
def initialize (value)
@value = value
end
end
所以,在创建新对象@value
的时候会some text
暂时保留,例如:
test = MyClass.new("some text")
有一种方法可以验证变量value
是否只接受文本?
class MyClass < ActiveRecord::Base
validates_format_of :value => /^\w+$/ # it doesn't work
def initialize (value)
@value = value
end
end
编辑
我已经尝试了所有答案,但我的 Rspec 仍然通过:
我的新课:
class MyClass < ActiveRecord::Base
validate :check_value
def check_value
errors.add(:base,"value is wrong") and return false if !@value || !@value.match(/^\w+$/)
end
def initialize (value)
@value = value
end
def mymethod
@value
end
end
我的 Rspec(我原以为它会失败,但它仍然通过了):
describe MyClass do
it 'checking the value' do
@test = MyClass.new('1111').mymethod
@test.should == '1111'
end
end
我想在分配1111
给@value
.