我知道 Ruby 中常见的验证方法。我当前的问题是,如果记录存在且布尔值设置为 true,我希望插入失败。表中的示例列是 => 名称、地址、Has_changed、id
现在,如果在表中将 has_changed 设置为 true,我想在表中添加新条目(在单独的调用中),该条目将具有名称、地址(新的)、has_changed(设置为 false)和 id。我不想更新现有条目,因为我想保留历史记录。
有没有办法通过使用 Ruby 来进行这样的验证?
提前致谢。
我知道 Ruby 中常见的验证方法。我当前的问题是,如果记录存在且布尔值设置为 true,我希望插入失败。表中的示例列是 => 名称、地址、Has_changed、id
现在,如果在表中将 has_changed 设置为 true,我想在表中添加新条目(在单独的调用中),该条目将具有名称、地址(新的)、has_changed(设置为 false)和 id。我不想更新现有条目,因为我想保留历史记录。
有没有办法通过使用 Ruby 来进行这样的验证?
提前致谢。
我认为最好在控制器中使用“新”和“创建”操作
class RecordsController < BaseController
def new
@record = Record.find(params[:id])
end
def create
Record.create(params[:record])
end
end
您的表格只包含地址
在你的模型中做一个 before_create 钩子
class Record < ActiveRecord::Base
default_value_for :has_changed, false
before_create :check_changed
...
private
def check_changed
changed_record = Record.where(name: name, has_changed: false).first
if changed_record && (changed_record.address != address)
changed_record.has_changed = true
changed_record.save
end
end
end
并添加地址验证以避免重复