Как установить атрибуты в объекте ActiveRecord, только если он равен nil? - PullRequest
0 голосов
/ 04 сентября 2010

Извините, я думаю, что сегодня я немного глуп

Ответы [ 2 ]

1 голос
/ 23 марта 2011
  1. Прежде всего, посмотрите на этот вопрос: Каков наилучший способ установить значения по умолчанию в activerecord
  2. style = "hardcore" unless style будет создавать новую переменную с именем 'style' вместоустановка существующего свойства.Измените его на ссылку self примерно так: self.style = "hardcore" unless style
  3. Наконец напишите присвоение self.style примерно так: self.style ||= "hardcore", что является сокращением для того, что вы сейчас написали.1013 *

Я бы написал так:

 class Mutant < ActiveRecord::Base   
   attr_accessible :style
   after_initialize :setup_values

   private
   def setup_values 
     self.style ||= "hardcore"
   end   
 end
0 голосов
/ 04 сентября 2010

только что нашел его в API

def setup_values 
  write_attribute :style, "hardcore" if style.blank?  
end

Тадаа и все работает :) 1004 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...