【发布时间】:2019-08-30 08:31:30
【问题描述】:
我正在寻找一种方法来防止用户在我的 Rails 应用程序中为 Update 方法单击更新,因为他们没有更改任何值。如果他们没有更改任何值,我的 UPDATE 方法将在某些字段中写入空值,因此如果用户没有更改任何详细信息而只是单击更新,我需要应用程序阻止更新记录。
任何建议将不胜感激。
仅供参考,这是标准的千篇一律更新方法:
def update
if @client.update(client_params)
redirect_to @client, notice: 'Client was successfully updated.'
else
render :edit
end
end
【问题讨论】:
-
你能解释一下你的具体情况吗(最好有代码)。如果用户能够使用空值(您不想为空)更新记录,那么这是一个验证问题。
-
也许您可以使用 ActiveRecord 回调来避免更新数据库中的记录。可以改用吗? (apidock.com/rails/ActiveRecord/Dirty/changed%3F) 在
before_update回调和throw :abort中故意停止回调链。 -
@JamesLovesPython 你能验证答案吗?
标签: ruby-on-rails ruby