Как использовать плагин in_place_edit для рельсов с частями?
Я использую плагин "in_place_editing" для рельсов, чтобы визуализировать форму с правками на месте. Это прекрасно работает, если по умолчанию rails выбирает шаблон по умолчанию (внутри контроллера не вызывается метод 'render'), но они ломаются, когда я пытаюсь визуализировать частичное с помощью вызова "render:part => 'частичное_имя'". Это известная проблема (in_place_edit не работает с частями?) Или я что-то упустил? Я получаю следующую ошибку при рендеринге частичного:
Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id
.../vendor/plugins/in_place_editing/lib/in_place_macros_helper.rb:74:in `in_place_editor_field'
2 ответа
Вы не предоставляете достаточно информации в своем вопросе, давая только две строки следа и не фрагменты представления, которое работает, или частичное, которое не работает. Это означает, что любые попытки ответить вам должны основываться главным образом на догадках. Тем не менее, помощник редактора на месте - это просто вспомогательный метод, как и любой другой, ничего особенного. Вы можете вызвать его практически из любого компонента представления. Весьма вероятно, что способ, которым это представление включается контроллером или действительно родительским представлением, не является причиной его сбоя.
Вспомогательный метод жалуется на nil
значение. Это означает, что, скорее всего, ваш частичный вызывает in_place_editor_field
и передача ему значений, которые не определены в частичном. Убедитесь, что он не использует локальные переменные, которые не определены, по сравнению с теми, которые используются в представлении, где ваш in_place_editor_field
звонок работает; убедитесь, что он не запрашивает другие переменные экземпляра. По всей вероятности, вы найдете представления, которые используют одно имя переменной, а часть, которую вы пытались визуализировать, использует другое.
render :partial => ...
механизм поддерживает различные способы явного перехода значений к частичным; Вы можете использовать их, чтобы уточнить свой код. Увидеть :locals
а также :object
опции для раздела "Рендеринг частичек" документации рендеринга в Rails API по адресу:
Я работаю над проектом технического обслуживания, который находится в рельсах 2.3.8. И этот вопрос съел много моего времени
В представлении измените представление, чтобы иметь переменную экземпляра:
@batch = batch
in_place_editor_field :batch, 'priority'