2015-03-17 3 views
0

У меня есть следующая модель ...обновления переменного экземпляр без обновления модели рельсы

ItemAttribute(id: integer, name: string count: integer) 

В моем контроллере я хочу, чтобы установить пользовательский размер для подсчета, что я могу использовать в моей точке зрения ...

@building = ItemAttribute.find_by_name("wall") 
# the following line of code updates the model as well as the instance variable (not what I want) 
@building.update_attribute(:count,10) 
# the following line of code doesn't update the model (desired), but the value also resets back to the model's value in the view (not desired)... 
@buildings.find_by_name("wall").count = 10 

Я использую атрибут count в цикле в представлении. Экземпляр стены является особым случаем, поэтому я хочу обновить атрибут только в представлении.

+0

, что вы имеете в виду с «обновить модель», обновленная информация о база данных? – ppascualv

+0

да, точно. Нет обновления в базе данных, но вы можете обновить счетчик экземпляров экземпляра. – thedanotto

ответ

0

Вы можете просто установить переменную экземпляра в контроллере и получить доступ к этому в представлении.

@building = ItemAttribute.find_by_name("wall") 
@count = 10 

Тогда на ваш взгляд доступ @count. Эта переменная экземпляра просто живет для запроса и доступна для контроллера и представления.

Не уверен, что ваша последняя строка пытается сделать, она назначает 10 подсчетам списка активных объектов записи.

Чтобы получить 10 Стены

@buildings = Building.find_by_name("wall").limit(10) 

Чтобы получить здания, где имя == «стены» и сосчитать == 10

@buildings = Building.where(name: "wall", count: 10) 
Смежные вопросы