2012/03/06 18:39:52
Рука болит (RSI), буду краток.

Гитхаб поломали. Потому что программисты на рельсах дебилы: http://blog.mhartl.com/2008/09/21/mass-assignment-in-rails-applications/

Вкратце, считается нормальным апдейтить строку базы данных тупо ВСЕМ, что пришло в POST-запросе.
Молодцы, чо.

Услышал мнения:
- "зато это удобно и не болят глаза от абстракций!"
- "это баг в рельсах, его должны пофиксить".

Всё это чушь собачья.

"Баг" действительно фиксят, запрещая автоматом апдейтить некоторые поля в модели. Их теперь можно будет апдейтить, только сказав волшебное слово "ахалай-махалай".
Ага, очень умнО. Теперь поведение метода new или update_attributes зависит от того, что определено в совсем другом месте.

Правильное решение (если действительно хочется краткости и не критична валидация):

user.update_selected_fields(request.post, ["name", "email"])

Всё больше укрепляюсь во мнении что руби надо сжечь точно так же как перл, ввиду непригодности его для серьёзных проектов более десяти строк длиной. Просто потому, что оно пробуждает в людях низменное.
30 посетителей, 6 комментариев, 2 ссылки, за 24 часа