因为在 rails guides 文档中提到,数据验证辅助方法有很多: acceptance\ validates_associated\ confirmation\ exclusion 等等 但是这些方法的书写形式 validates :title, presence: true 是像这样的,其中 presence 像是散列的:key,而 true 相当于 value, 所以有疑问这些辅助的验证方法:是方法还是:key?
validates(*attributes) public 和 validates_acceptance_of,只找到这两种形式的 API,acceptance\ validates_associated\ confirmation\ exclusion 这些似乎是属性,对于源码说实话看不懂。
自学 ruby program 但还是不懂,比如 validate 这个方法:methods 这个参数相当于数组,如果 block 存在,就将 block 添加到数组末尾,但 write_inheritable_set 不是很懂,而且它的参数怎么又是:validate 这个方法
初学看 API 就行了。。。。不必过于较真。
比如看 validates 怎么用,而不是 validate 干什么。。。。
http://railsbook.tw/chapters/07-ruby-basic-3.html
也許這篇勉強算得上跟你這問題有點關係,供你參考 :)
花點時間了解 Ruby 是怎麼回事,對 Rails 學習是滿有幫助的喔
你好有意思。啊哈,没有看源码,validates(:name, :email, { presence: true })
, 我需要去测试一下。