2015-01-22 3 views
1
@related=Book.find_all_by_related(@book.related) 
if @related.count>1 
    @related.each do |b| 
    b.update_attributes(params[:book]) 
    end 
end 

Я пользуюсь рельсами 2.3.5. для вышеприведенного кода первая итерация работает отлично и отображается верно. но для следующей итерации b.update_attributes() показывает false. Все параметры достигают итераций. У метода update_attributes() есть какие-либо условия?update_attributes() не работает должным образом

+1

что d params [: book] имеет место? – Ajay

+0

Возможно, некоторые проверки не удались? Проверьте свои документы на достоверность. –

+1

Я думаю, что params [: book] дает вам данные только для 1 (текущей) книги – kirqe

ответ

0

Если в вашей модели указаны атрибуты attr_accessible, будут обновляться только эти атрибуты.

Используйте attr_accessible для предотвращения массового присвоения (по пользователям) атрибутов, которые не должны редактироваться пользователем. Массовое присвоение используется в методах создания и обновления вашего стандартного контроллера.

class User < ActiveRecord::Base 
    attr_accessible :login, :password 
end 

Таким образом, следующее следующее будет возвращать true, но не обновляет атрибут статуса.

Если вы хотите обновить атрибут статуса, вы должны назначить его отдельно.

@user.status = 'active' 
save 
Смежные вопросы