Czy ktoś może wie, czy zmiana w Rails 3, dotycząca następującego kodu:
[code=ruby]# controller
def action @value = [1,2,3]
end
view ‘action’
render :partial => “some_partial”, :object => @value[/code]
która w Rails 2.3.x powodowała zwykłe przypisanie do zmiennej lokalnej “some_partial” wartości @value niezależnie od jej typu, a w Rails 3 powoduje, że brany jest tylko pierwszy element tablicy @value, jest zamierzona, czy może jest błędem?
Nie, no collection działa tak jak powinno, tzn. wielokrotnie renderuje ten sam partial dla wszystkich elementów.
Ale mi właśnie chodzi o inną sytuację - kiedy object jest tablicą, która nie ma być werenderowy wielokrotnie, tylko jest używany wew. tego partiala.
Powinno działać w 3.0.3 - jest odpowiedni test w actionpack/test/template/render_test.rb
def test_render_object_with_array
assert_equal "[1, 2, 3]", @view.render(:partial => "test/object_inspector", :object => [1, 2, 3])
end
Ten test używa minimalistycznego szablonu:
<%= object_inspector.inspect -%>
Spróbuj coś takiego u siebie zrobić lub sprawdź czy przechodzą testy actionpacka.
Faktycznie - załatali to w 3.0.3. Jak zrobiłem upgrade, to działa tak jak wcześniej. Nie znalazłem sensownego ticketu na lighthousie, dlatego myślałem, że to może nie być załatane jeszcze. Dzięki za pomoc.