метод create_or_update в рельсах

У меня было очень трудное время с включением конкретного примера кода в комментарий javadoc. Я хотел бы поделиться этим. Обратите внимание на следующее:

  • использование старого тега <code> - для предотвращения интерпретации фигурных скобок
  • использование «нового» {@code ...} - тега для получения дженерики, включенные в выход
  • экранирование знака @ в @Override через «{@literal @}Override», потому что генератор javadoc «наклоняется» из-за того, что @ идет непосредственно после открытия фигурной скобки
  • удалите одно пространство перед {@code и {@literal, чтобы компенсировать внутренние пространства и сохранить выравнивание

код javadoc:

/** this methods adds a specific translator from one type to another type. `
  * i.e.
  * <pre>
  * <code>new BeanTranslator.Builder()
  *   .translate(
  *     new{@code Translator<String, Integer>}(String.class, Integer.class){
  *      {@literal @}Override
  *       public Integer translate(String instance) {
  *         return Integer.valueOf(instance);
  *       }})
  *   .build();
  * </code>
  * </pre>
  * @param translator
  */

печатается как

new BeanTranslator.Builder()
  .translate(
    new Translator<String, Integer>(String.class, Integer.class){
      @Override
      public Integer translate(String instance) {
        return Integer.valueOf(instance);
      }})
  .build();
23
задан Ryan 7 March 2013 в 16:05
поделиться

2 ответа

my_class = ClassName.find_or_initialize_by_name(name)

my_class.update_attributes(
   :street_address => self.street_address,
   :city_name => self.city_name,
   :federalid => self.federalid,
   :state_prov_id => self.state_prov_id,
   :zip_code => self.zip_code
)
79
ответ дан Mikey 7 March 2013 в 16:05
поделиться
person = Person.find_by_name(name) || Person.new(:name => name)
person.update_attributes!(:street_address => street_address, :city_name => city_name) #etc etc
6
ответ дан lambdabutz 7 March 2013 в 16:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: