Eri*_*ric 2 ruby validation datamapper sinatra
我在datamapper中有以下模型:
class Student
include DataMapper::Resource
property :id, Serial
# <snip>
property :permissions, String, :accessor => :protected, :required => true, :default => 'standard'
property :valid, Boolean, :default => false, :required => true
# <snip>
end
Run Code Online (Sandbox Code Playgroud)
在要求'dm-validations'(版本1.1.0)并启动我的Sinatra应用程序后,我收到以下消息:
/Library/Ruby/Gems/1.8/gems/dm-validations-1.1.0/lib/dm-validations.rb:81:in `valid?': wrong number of arguments (1 for 0) (ArgumentError)
from /Library/Ruby/Gems/1.8/gems/dm-validations-1.1.0/lib/dm-validations.rb:81:in `save_self'
from /Library/Ruby/Gems/1.8/gems/dm-core-1.1.0/lib/dm-core/resource.rb:1007:in `_save'
from /Library/Ruby/Gems/1.8/gems/dm-core-1.1.0/lib/dm-core/resource.rb:1223:in `run_once'
from /Library/Ruby/Gems/1.8/gems/dm-core-1.1.0/lib/dm-core/resource.rb:1006:in `_save'
from /Library/Ruby/Gems/1.8/gems/dm-core-1.1.0/lib/dm-core/resource.rb:406:in `save'
from /Library/Ruby/Gems/1.8/gems/dm-validations-1.1.0/lib/dm-validations.rb:69:in `save'
from /Library/Ruby/Gems/1.8/gems/dm-validations-1.1.0/lib/dm-validations/support/context.rb:30:in `validation_context'
from /Library/Ruby/Gems/1.8/gems/dm-validations-1.1.0/lib/dm-validations.rb:69:in `save'
<snip>
我正在为我的模型使用的"有效"名称是保留字吗?如果是,我在哪里可以找到这些单词.我接下来试着给它命名:'student_valid',但现在我真的很好奇.
谢谢
#有效?是dm-validations添加的方法.您不能将"valid"用作属性名称,因为它会自动定义"valid?" 布尔属性类型的方法,它覆盖dm-validations'有效?因此错误.
这是一个棘手的情况,我想我们需要改进我们验证属性名称的方式.感谢您报告此事.