рельсы 3, как ссылка на имя поля может извлечь данные из другого источника, если поле пустое? - PullRequest
0 голосов
/ 21 апреля 2011

В моем приложении пользователи имеют одну запись "шаблона" (в таблице шаблонов), которая устанавливает значения по умолчанию для своих данных.

Затем они создают несколько записей в (Таблица пользовательских данных).

Для каждой записи Userdata, если они вводят данные в поле, приложение использует эти данные (конечно). Но если Userdata.foo пуст, я бы хотел использовать Template.foo прозрачно. И если оба пустые, то это "пусто".

Я уверен, что правильный ответ - НЕ кодировать каждое место, где я использую каждое поле:

if Userdata.foo.blank? 
   Template.foo
endif

И я предполагаю, что это вопрос какого-то определения моей модели для переопределения имени поля?

И я надеюсь, что есть какой-то способ даже не кодировать метод модели поле за полем, чтобы сказать: «Если поле в UserDayta пустое, используйте вместо него поле в шаблоне ...»

1 Ответ

1 голос
/ 21 апреля 2011

Вы можете определить метод в вашей пользовательской модели следующим образом:

def fetch_attribute(att)
 if self.userdata[att].nil? and self.template[att].nil? 
   return nil
 elsif self.userdata[att].nil?
   return self.template[att]
 else
   return self.userdata[att]
 end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...