演算子が含まれている行に倒置のifがあったとき、このifの優先度が最高と考えて良いでしょうか。つまり、以下の2行は同じと考えて良いでしょうか。
ruby
1p "A" || "B" if false # => nil 2p ("A" || "B") if false # => nil
また、これに付随してもうひとつ質問があります。
こちらのサイト(modelに存在しないカラムを仮想的に存在させた状態にする)では、郵便番号を前半部分と後半部分に分けて取り出すゲッターについて説明されていますが、以下に示すコメント部分は誤りではないでしょうか。
ruby
1class Address < ApplicationRecord 2 attr_writer :first_address, :last_address 3 4 validates :address, format: { with: /\A\d{7}\z/ } 5 validates :first_address, presence: true 6 validates :last_address, presence: true 7 8 before_validation :set_address 9 10 # ↓ 誤りだと思う箇所。 first_addressが存在してもaddressが存在しなければ、 11 # ifがtrueにならないのでfirst_addressの値を返却できない 12 def first_address 13 @first_address || self.address[0..2] if self.address.present? 14 end 15 16 # ↓ 誤りだと思う箇所。 last_addressが存在してもaddressが存在しなければ、 17 # ifがtrueにならないのでlast_addressの値を返却できない 18 def last_address 19 @last_address || self.address[3..6] if self.address.present? 20 end 21 22 def set_address 23 self.address = [@first_address, @last_address].join 24 end 25end
よろしくおねがいします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。