ruby-on-rails - 如何通过 Rails 模型将值设置为 null?

标签 ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.2

如何通过 ruby​​ on rails 中的模型将列值设置为 null?例如,我有一个名为 'include_on_epc'checkbox 和一个名为 'removal_reason'textbox

如果复选框被选中,我想在数据库中将文本框的值设置为 NULL。

我尝试了以下方法,它不起作用。

class Emm::Rrr::Result < ActiveRecord::Base

  before_save :no_removal_reason_when_including_on_epc

  private
  def no_removal_reason_when_including_on_epc
    if include_on_epc == 1
      self.removal_reason == nil
    end
  end
end

最佳答案

这里有两个问题。

  1. 正如 Jakob 所指出的,self.removal_reason == nilremoval_reasonnil 进行比较,而您想要 removal_reason 设置为 nil。因此 self.removal_reason = nil 绝对是您想要的。

  2. 如果 include_on_epc 是一个 boolean 列,则与 1 的比较将不起作用。您可能需要一个简单的 if include_on_epc,因为它的值可能是 truefalse,而不是 1 0,在 Ruby 中 1 != true

关于ruby-on-rails - 如何通过 Rails 模型将值设置为 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14316900/

相关文章:

ruby-on-rails - 当我运行 heroku run rake db :migrate in production 时出现此错误

ruby-on-rails - 如何使用 nginx 在 EC2 上运行两个应用程序

ruby-on-rails - Rails 项目可以在不同的计算机上移植吗?

mysql - Rails 查询接口(interface) where 子句问题?

ruby-on-rails - Rails 中的 simple_format 在元描述中显示难看的 html 代码

ruby-on-rails - sidekiq 在线程之间共享变量

ruby-on-rails - 在 Windows 上安装 rmagick gem

ruby-on-rails - 为什么我不能在 Rails 的表格中创建一个数组作为列?

ruby - Ruby 中 "return x if x"的简写

ruby-on-rails - ruby 装饰器和类 eval 之间有什么区别?