[英]How to reject blank before_save callback rails?
我想用模型回调拒绝空白参数
模式:面试
+----------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+-------------+------+-----+---------+----------------+
| id | bigint(20) | NO | PRI | NULL | auto_increment |
| note | varchar(50) | YES | | NULL | |
| interview_at | datetime | NO | | NULL | |
| created_at | datetime | NO | | NULL | |
| updated_at | datetime | NO | | NULL | |
+----------------+-------------+------+-----+---------+----------------+
控制器:
def interviews
return [] unless params[:interviews]
parse_params(:interviews).map do |interview|
Interview.find_or_initialize_by( interview }) )
end
end
模型:
class Interview < ApplicationRecord
before_save :remove_blank
def remove_blank
@new_record = false if interview_at.blank?
end
end
例:
输入:
- 面试1(面试日期:'2019-09-15 22:00',注意:'abc')
- 面试2(visit_at:``,note:'bcd')
输出:
- 面试1(面试日期:2019-09-15 22:00,注意:'abc')
- 面试2(访谈时间:2019-09-15 22:00,注意:'abc')
创建时before_save返回错误的属性。 我该如何解决?
谢谢你的帮助
您可以尝试一下,您想创建一个验证,这将防止记录被保存并使模型记录在调用valid?
时返回false valid?
在上面。
class Interview < ApplicationRecord
validate :interview_at_not_blank
def interview_at_not_blank
errors.add(:interview_at, :blank, message: "cannot be blank") unless interview_at.blank?
end
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.