ruby-on-rails - 无法更新验证方法中的属性 - Rails
问题描述
对活动记录还不太满意
我想知道是否可以像这样从另一个更新模型属性:
validate :check_if_exist?
def check_if_exist?
events = Event.where(kind: kind, starts_at: starts_at..ends_at).or(Event.where(kind: kind, ends_at: starts_at..ends_at))
unless events.count == 0
events[0].update_attribute(:starts_at, starts_at)
events[0].update_attribute(:ends_at, ends_at)
errors.add(:base, "Event ID##{events[0].id} updated")
return false
end
end
完全不确定我是否在好的路上,但是当我正在寻找更新模型而不是像这样创建时我找不到任何结果。
解决方案
event = Event.where(kind: kind, starts_at: starts_at..ends_at).or(Event.where(kind: kind, ends_at: starts_at..ends_at)).first_or_initialize
event.update(starts_at: starts_at, ends_at: ends_at)
推荐阅读
- xpages - XPages - 如何在 xp:repeat control 中显示所有记录?
- sql - 查询太复杂 - 访问查询生成器是否弄乱了 sql?
- react-native - 状态在本机反应中未定义
- java - Android 闪屏不显示
- angular - 使用多个服务来填充 Angular 数据表
- mysql - 为mysql中第一个表中的每一行从另一个表中选择相应的行
- reactjs - 使用 Yup 的 Formik 验证加上通过 api 调用的特定验证
- java - Scala 对象的序列化
- python - 我如何通过 python 烧瓶为参数构建适当的宁静响应 API
- php - 如何不在编码资源管理器中显示父文件夹?