class Person
include Mongoid::Document
field :blood_alcohol_level, type: Float, default: 0.40
field :last_drink, type: Time, default: ->{ 10.minutes.ago }
end
引入模块里面的 validate 还不好删,我以前写过这样的代码去掉密码校验
# remove password_digest validator
_validate_callbacks.delete_if {|c| c.raw_filter.is_a?(ActiveModel::Validations::PresenceValidator) && c.raw_filter.attributes.include?(:password_digest)}
_validators.delete(:password_digest)
比较丑,拷贝一份 SecurePassword 模块再修改还比较漂亮。
是不是用了 ActiveModel::SecurePassword,它里面加了密码不能为空的校验。
不能判定,如果有系统退信也说不准多久之后收到,即使没有退信也不能知道是否进入了垃圾桶。
只能说遵循良好的邮件规范,用知名正规的邮件发送商服务,不要发送垃圾邮件,提升送达率。
我就不会花心思在这些地方,顶多前置个时间戳
Started GET "/homes" for 122.234.244.49 at 2012-09-17 23:22:32 -0400 Processing by HomesController#index as HTML Rendered homes/index.html.erb within layouts/application (26.4ms) Completed 200 OK in 252ms (Views: 125.9ms | ActiveRecord: 1.4ms)
速度正常啊。首次要载入 rails 框架是慢点,不过一般就几秒。5 分钟是别的问题。
要多些 log
Student.grades.below_average
但是我建议 below_average 写成 Grade 的 scope
class Grade < ActiveRecord::Base
scope :below_average, where('score < ?', 2)
end
依然是这么调用 Student.grades.below_average
之后想要增加参数可以这样
class Grade < ActiveRecord::Base
scope :below_average, lambda.new {|score| where('score < ?', score)}
end
调用变成Student.grades.below_average(2)
没明白需求,1 楼的两种更新操作不能满足需求吗?update_attributes
是有校验的,注意单复数。
update_attribute 就是用来略过校验的,但是不会略过 callback。还有个可以略过 callback 的 update_column。
不支持占位符。
update_attribute :nick_name, user_setting.nick_name # 无校验
update_attributes :nick_name => user_setting.nick_name # 有校验
#12 楼 @cisolarix team 是团队不是组团。
#12 楼 @cisolarix 我的看法是你是属于 $199 per student 的范围,你如果打算去咨询团队报价那我静候。
#10 楼 @cisolarix $199 per student, $159 per alumni
或者楼主已经去谈过团队价了?(虽然我不觉得用帖子召集来的是一个团队)
#3 楼 @cisolarix 什么是团购?Progmatic 有给出团购价吗?
可以用。如果出现问题,可能是你执行脚本的用户环境没有载入 rvm 的环境变量。
觉得贵可以去买便宜的教材。
什么书啊……我从一开始看资料就说如果 migrate 写的是 boolean,那么这个字段的值就返回 boolean 啊。
你先把自己的设想提出来,别人才好提改进意见。
话说 Mongoid 用的是 _type 字段,感觉更合理。不知是不是 MySQL 的字段名有限制。
ActiveRecord 的 type 用来做单表继承,是个特殊字段,就跟 id 字段一样。
最简单还是自己换个名字,比如 post 的 type,就干脆叫 post_type。
正确的选择~
转载贴链接就好了。