Rails 3 Helper или частичный?Переменная, переданная в частичное с: locals пуста - PullRequest
1 голос
/ 11 марта 2012

У меня проблема с доступом к переменной: prepend_id в моей общей / _time_select.html.erb. Переменная кажется пустой. Идея состоит в том, чтобы иметь возможность вызывать частичное и передавать строку (для добавления идентификаторов), чтобы не возникало конфликтов с переменными записи, когда на странице 2 или более полей ввода времени.

Я вызываю следующую строку из другого частичного _form.html.erb.

<%= render 'shared/time_select', :locals => { :prepend_id => "starttime" } %>

Вот часть моего общего / _time_select.html.erb

<div id="<%= @prepend_id.to_s %>_select_container time_select_container">
    <select name="<%= @prepend_id %>_hour">
        ...
    </select> : 
    <select name="<%= @prepend_id %>_minute">
        ...
    </select> 
    <select name="<%= @prepend_id %>_ampm">
        ... </select>
</div>

Это значительно упростит размещение их на контроллере. Затем в контроллере я мог бы легко добавить время к дате и времени, представляемой в той же форме. Кроме того, побочный вопрос, мне интересно, будет ли это хорошее время, чтобы использовать помощника или нет?

1 Ответ

4 голосов
/ 11 марта 2012

Во-первых, поместите @ в частичное.Просто используйте prepend_id вместо @prepend_id

Кроме того, вам нужно либо использовать: частичные AND: локальные ключи, либо ни то, ни другое:

render :partial => 'shared/time_select', :locals => { :prepend_id => "starttime" }
#OR
render 'shared/time_select', :prepend_id => "starttime"

Похоже, проблема та же: Передача значений в частичное в рельсах 3

...