В предыдущих версиях Rails (Rails 2) локальная переменная по умолчанию искала переменную экземпляра с тем же именем, что и частное в родительском.
Учитывая ваш пример, так как частичное имя называется _flash
, оно автоматически передаст переменную экземпляра flash как локальное значение частичному. Таким образом, у вас будет доступ к нему. Это поведение устарело в 2.3 и было удалено в Rails 3.0.
Это означает, что вы всегда должны явно передавать все переменные экземпляра как locals
, даже flash
, так же, как вы писали в своем последнем примере.
<%= render :partial => "flash", :locals => {:flash => flash} %>
Это не имеет ничего общего с flash
, скажем, flash
переменная экземпляра, как и любая другая.
Это ограничение базы данных все еще существует для гибернации. Если вам действительно нужно иметь более 1000 элементов в вашем предложении in, вам придется самостоятельно разделить список в коде и выполнить запрос для каждого блока из 1000 ключей, а затем сложить наборы результатов вместе.
Обратите внимание на этот хакерский прием. вниз, если вашему запросу необходимо отсортировать или иным образом агрегировать результаты запроса, потому что полный набор результатов будет известен только в коде. В этом случае вам лучше найти другой способ написать запрос, который не требует предложения IN
.
Да, поскольку Hibernate на каком-то этапе вызовет Oracle, поэтому предел является самым низким из ограничений в Hibernate и Oracle
Hibernate не делает ничего особенного с данными для входа - просто передает их в база данных
Похоже, что ошибка в гибернации:
http://opensource.atlassian.com/projects/ibernate/browse/hhhhhh-123