Локальная переменная не передается в частичный шаблон при рендеринге? - PullRequest
4 голосов
/ 17 апреля 2010

Я не могу передать переменную моему частичному шаблону в rails (2.3.5). Мой код выглядит следующим образом:

В файле основного вида .html.erb:

<% f.fields_for :payments do |payment_form| %>
    <%= render 'payment', {:f => payment_form, :t => "test" } %>
<% end %>

и в файле _payment.html.erb:

<%= t %>

выдает ошибку wrong number of arguments (0 for 1). Объект payment_form передается частичному как f без проблем. Я пробовал несколько вариантов вышеупомянутого синтаксиса (например, :locals => {:f => payment_form, :t => "test" }, но безуспешно. Я предполагаю, что я делаю что-то довольно простое, но просто не вижу этого.

Ответы [ 3 ]

2 голосов
/ 19 апреля 2010

Это, вероятно, потому что t () является зарезервированным вспомогательным методом представления, используемым для I18n. Просто переименуйте его в нечто более наглядное

1 голос
/ 18 апреля 2010

Вы пробовали <%= render 'payment', :f => payment_form %>

Я не уверен, для чего предназначен: t, но rails явно говорит, что вы должны передавать только один дополнительный параметр с неправильным числом аргументов (0 для 1), ошибка.

1 голос
/ 17 апреля 2010

Попробуйте

render :partial => 'payment', :locals => {:t => 'test'}
...