best_in_place не показывает нулевое значение, когда нет макета

Я визуализирую частичный и визуализирую его без макета

format.html { render :layout => false }

Все значения отображаются правильно и редактируются с помощью best_in_place, как и ожидалось. Однако нулевые значения отображаются пустыми и, следовательно, не могут быть отредактированы (т. е. не отображается «-»). Попытка специально использовать параметр :nil не имеет значения.

При рендеринге макета он отображается правильно, однако я не должен использовать макет. Какие-либо предложения?

Пример кода: Контроллер

def index
....
@user = User.find(params[:user_id])
  respond_to do |format|
    format.html { render :layout => false } 
    format.json { render json: @user }
  end
end

Вид

<td class='centered-cell span2'><%= best_in_place @user, :nick_name, :inner_class => 'span1' %></td>

person user2339344    schedule 11.09.2013    source источник
comment
Пожалуйста, вставьте код.   -  person Rails Guy    schedule 11.09.2013
comment
непонятно... что `значения nil отображаются пустыми и поэтому не могут быть отредактированы (т.е. нет - отображается)` ??   -  person Rajarshi Das    schedule 11.09.2013
comment
Да, именно, когда значение атрибута равно нулю, вместо '-', который обычно отображается, есть пустая строка, и ее нельзя редактировать.   -  person user2339344    schedule 11.09.2013
comment
Я также обнаружил, что другие люди сталкиваются с той же проблемой, что и в этой нерешенной проблеме: stackoverflow.com/questions/18725948/   -  person user2339344    schedule 11.09.2013
comment
ОК, я думаю, что нашел ответ на этот вопрос - отображение нуля выполняется в разделе JavaScript, вызываемом вызовом $('.best_in_place').best_in_place(). Поскольку этот код на моей странице вызывался только в «готовом» JS, он не вызывался, когда я загружал неполную дату, поэтому best_in_place() не вызывался. Вызов best_in_place после того, как вызов AJAX решил эту проблему. Спасибо   -  person user2339344    schedule 11.09.2013


Ответы (1)


в моем случае я использовал type: :select, но collection: был пуст

поэтому мне пришлось сделать что-то подобное, чтобы поймать его для пустого поля выбора

<%= best_in_place [:admin, resource], :select_attr, type: :select, collection: SelectModel.all.map{|sm| [sm.id, sm.name]}.presence||[nil, 'nil'] %>
person okliv    schedule 31.03.2014