У меня есть запрос MySQL, такой как:
SELECT mydate, countryCode, qtySold from sales order mydate, countryCode
Это возвращает кортежи со значениями, такими как:
((datetime.date(2011, 1, 3), 'PR', Decimal('1')), (datetime.date(2011, 1, 31), 'MX', Decimal('1')))
Когда я пытаюсь напечатать это с помощью цикла, он печатает совершенно хорошо:
2011-1-3, PR, 1
2011-1-31, MX, 1
Но когда я пытаюсь вернуть это значение, он возвращается как
datetime.date(2011, 1, 3), 'PR', Decimal('1')
Есть ли способ, что я могу получить нормальные данные, чтобы я могу передать его в пользовательский интерфейс для обработки? Под обычными данными я имею в виду:
[['2011-1-03', 'PR', 1], ...]
-121--1299947-
Официальным способом предотвращения угроз безопасности при массовом назначении является использование attr _ доступный . Однако некоторые программисты считают, что это не работа для модели (или, по крайней мере, не только для модели). Самым простым способом выполнения этого действия в контроллере является разрезание параметров хэш:
@user = User.update_attributes(params[:user].slice(:name))
Однако в документации указано:
Обратите внимание, что вместо этого используется Hash # except или Hash # slice attr_accessible очистка атрибутов не обеспечит достаточной защиты.
Почему это так? Почему расщепление парамов в белом списке не обеспечивает достаточной защиты?
ОБНОВЛЕНИЕ: Линейки 4,0 поставят сильные параметры , уточненное расщепление параметров, так что я полагаю, что все расщепление было не так уж и плохо.