4

Ruby on Railsでモデルを介して列の値をnullにする方法は? たとえば、checkbox呼び出され'include_on_epc'た とtextbox呼び出された があり'removal_reason'ます。

チェックボックスがチェックされている場合、データベースでテキストボックスの値を 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
4

2 に答える 2

8

ここに2つの問題があります。

  1. ヤコブが指摘したように、self.removal_reason == nilと比較removal_reasonして、に設定nilたい。したがって、間違いなくここで必要なものです。 removal_reasonnilself.removal_reason = nil

  2. include_on_epcが列の場合、とのboolean比較1は機能しません。if include_on_epc値はおそらくtrueor false、not1または0、であり、Rubyであるため、単純なものが必要になる可能性があります1 != true

于 2013-01-14T10:50:58.030 に答える
3

self.removal_reason == nilあるべきだと思われますself.removal_reason = nil。その行での比較ではなく、割り当てが必要だと思います。;-)

于 2013-01-14T10:44:23.053 に答える