Я разрабатываю веб-приложение на Ruby 1.8.7 и Rails 2.3.5, которое будет управлять каким-то промышленным процессом.Одним из требований является то, что, когда кто-то хочет удалить реестр, задача удаления должна будет обновить одно из полей таблицы БД.Это поле определяет, активна ли запись.
Я изменил метод удаления по умолчанию, сгенерированный скаффолдом:
def activar
@alarma = Alarma.find(params[:id])
respond_to do |format|
if @alarma.update_attribute(:estado_id => 1)
flash[:notice] = 'La alarma ha sido activada.'
format.html { redirect_to(@alarma) }
format.xml { head :ok }
else
format.html { render :action => "index" }
format.xml { render :xml => @alarmas }
end
end
end
def desactivar
@alarma = Alarma.find(params[:id])
respond_to do |format|
if @alarma.update_attribute(:estado_id => 2)
flash[:notice] = 'La alarma fue desactivada.'
format.html { redirect_to(@alarma) }
format.xml { head :ok }
else
format.html { render :action => "index" }
format.xml { render :xml => @alarmas }
end
end
end
, где :estado_id => 1
активно, а :estado_id => 2
- этоВыключена.Тем не менее, когда я пытаюсь сделать обновление, оно не меняет атрибут.На самом деле, он ничего не делает.
У кого-нибудь есть подсказка?