工资好低的样子。。
竟然还有方法名用驼峰的 看了就火大
也不是啊 厦门好歹有个厦门大学和一个软件园啊 IT 没这么糟糕啊
Linux 不适合非程序员用 毫无疑问的
#8 楼 @thisiskun 没听明白你意思 validate 是写在 model 里的啊 业务层的内容都是写在 controller 里的啊
#6 楼 @xmonkeycn 这个你们太理想化了 PM 说有这个限制就是有这个限制 实现是 Dev 的事情,最多只能 Workaround,不可能完全去除啊
#4 楼 @jimrokliu 嗯 其实我后来也发现 除非 3 和 4 两个 constraint 去掉(或是延迟)一个,否则该问题不可解决。 延迟 4 的办法是,先用 save_without_validation 暂时保存 student 对象,然后保存中间关系,最后再执行一次对 student 的 validate。或者是把 validate 约束延迟到 update 时才有效。
#1 楼 @jimrokliu 代码大约是这样的
class Teacher < ActiveRecord::Base
has_many :teacher_student_relations
has_many :students, :through => :teacher_student_relations
# 其他内容省略
end
class Student < ActiveRecord::Base
has_many :teacher_student_relations
has_many :teachers, :through => :teacher_student_relations
validate do |student|
if student.teachers.empty?
student.errors.add_to_base 'A student must have at least one teacher!'
end
end
# 其他内容省略
end
class TeacherStudentRelation < ActiveRecord::Base
belongs_to :teacher
belongs_to :student
# 其他内容省略
end
其实方法也不是完全没有
# 先创建中间关系
ts = TeacherStudentRelation.new
ts.teacher_id = teacher_id
ts.student = Student.new
# 这里如果想之前一样保存肯定会出“一个学生必须有至少一个老师”的错误
ts.student.save!
# 但是换成
ts.student.save_without_validation
# 就可以暂时绕过这个错误
# 然后保存关系对象
# ts.save!
# 确实能够成功
这个方法最大的局限性在于 Student 保存的时候绕过了 Model 层验证,其实除了“一个学生必须有至少一个老师”的验证之外 其他验证还是希望存在的。所以这个解决方法还是不够好。。
好棒 之前只是看过 Ruby 2,还没看过 Rails 4 的呢
楼主肯定没有真刀真枪的玩过 我们项目几年内对数据库的修改达到上千次 没有 migration 的结果就是你不知道别人修改了数据库,当然别人也不会通知你,直到出错以后才找一个勉强能解决问题的数据库脚本跑一跑,如果没出错就不跑了。经过几个月几年的时间和正式数据库的差距越来越大,最后发现出了问题跑脚本也是错误一大堆,才会意识到当中其实漏跑过很多脚本了。但是由于时间长久,记不清了,因此这个库最终无法修复了。这就是没有 migration 的结果。。。
不明白时薪是怎么计算的(50..80) * 8 * 22 ??
15K 还差不多。。。
我敢说我是只用 Mac 的 Touchpad 的嘛?
233 主要是因为人家是小姑娘 应该长得不错吧 照片有嘛?上传上来看看