best_in_place 没有布局时不显示 nil 值

Posted

技术标签:

【中文标题】best_in_place 没有布局时不显示 nil 值【英文标题】:best_in_place does not show nil value when no layout 【发布时间】:2013-09-15 02:41:58 【问题描述】:

我正在渲染一个部分并在没有布局的情况下渲染它

format.html  render :layout => false 

所有值都正确显示,并且可以按预期使用 best_in_place 进行编辑。但是,nil 值显示为空,因此无法编辑(即不显示“-”)。尝试专门使用 :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>

【问题讨论】:

请粘贴一些代码。 不清楚...什么` nil 值显示为空,因此无法编辑(即没有显示“-”)`?? 是的,当属性的值为 nil 时,不是通常显示的“-”,而是一个空字符串,并且无法编辑。 我发现其他人也面临同样的问题,就像这个未解决的问题一样:***.com/questions/18725948/… 好的,我相信已经找到了答案——nil 显示是在 javascript 部分完成的,通过调用 $('.best_in_place').best_in_place() 来调用。由于我页面中的此代码仅在“就绪”JS 中调用,因此在我加载部分日期时未调用它,因此未调用 best_in_place()。在 AJAX 调用后调用 best_in_place 解决了这个问题。谢谢 【参考方案1】:

在我的情况下,我使用了 type: :selectcollection: 是空的

所以我不得不做这样的事情来捕捉它的空选择框

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

【讨论】:

以上是关于best_in_place 没有布局时不显示 nil 值的主要内容,如果未能解决你的问题,请参考以下文章

best_in_place 显示下拉菜单选项

使用自动布局的 xib 添加为子视图时不显示

显示复选框 best_in_place ruby​​ gem

具有嵌套属性的 Best_In_Place 内联编辑

如何在 best_in_place 编辑完成后触发事件?

Gridstack在删除时不更新