Jar*_*arl 19 activerecord ruby-on-rails-3
在ActiveRecord(或ActiveModel)中,我希望通过以下规范
it { should allow_value("").for(:my_string) }
it { should_not allow_value(nil).for(:my_string) }
Run Code Online (Sandbox Code Playgroud)
我试过了
validates :my_string, {
:length => { :in => 0..255 },
:presence => true,
:allow_blank => true,
:allow_nil => false,
}
Run Code Online (Sandbox Code Playgroud)
并且
validates :my_string, {
:length => { :in => 0..255 },
:allow_blank => true,
:allow_nil => false,
}
Run Code Online (Sandbox Code Playgroud)
但要么它既允许"",也允许零或不允许.
Chr*_*oom 35
这适合我
validates :my_string, length: { in: 0..255, allow_nil: false }
Run Code Online (Sandbox Code Playgroud)
如果您只想验证该字段不为null,但不关心空/空字符串,则可以:
validates :my_string, length: { minimum: 0, allow_nil: false, message: "can't be nil" }
Run Code Online (Sandbox Code Playgroud)
小智 7
你可以试试:
validates :my_string, exclusion: { in: [nil]}
Run Code Online (Sandbox Code Playgroud)
它是ActiveRecord中验证本身的一部分.
我已经尝试了其他人,所有人都非常恭敬,或者也允许其他人.
您可能需要为此进行自定义验证:
validates :my_string, :length => { :in => 0..255 }
validate :my_string_is_valid
def my_string_is_valid
self.errors.add :base, 'My string can not be nil' if self.my_string.nil?
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19295 次 |
| 最近记录: |