我试图使用Rails gem' bootstrap-editable-rails' (X-editable for Bootstrap)。
我想要一个复选框,但x-editable没有复选框。相反,你应该使用"清单" type(我真的希望x-editable可以处理布尔复选框)。
这是我的Rails表单代码:
<td>
<a href="#" class="checklist" data-type="checklist" data-pk="1" data-resource="taskup" data-name="donebox" data-url="/taskups/<%= taskup.id %>" >
<%= taskup.donebox ? taskup.donebox : "False" %>
</a>
</td>
这是jquery(咖啡脚本)
$(".checklist").editable
type: 'checklist'
source:
1: "True"
我得到x-editable弹出窗口,但不是保存&#34; 1&#34;进入完成框字段,它放入&#34; ----&#39; 1&#39;&#34;
见附图。
感谢您的帮助!
答案 0 :(得分:1)
我使用bootstrap-editable 1.5.1没有gem并且遇到类似的问题,因为发送到后端的布尔值是一个数组(因为清单类型)即在rails log中你会得到类似的东西:
Parameters: {"id"=>"257", "geo_entity"=>{"is_current"=>["1"]}}
我通过修改params方法中的复选框字段来解决这个问题,就像这样(你会看到我也准备了Rails期望更新资源的格式的参数):
params: (params) ->
value = params.value
# is_current will be a checklist and therefore
# the value will be an array such as ['1']
if params.name == 'is_current'
value = params.value.unshift()
#originally params contain pk, name and value
newParams = id: params.pk
newParams['geo_entity'] = {}
newParams['geo_entity'][params.name] = value
newParams
我也希望看到更简洁的方法!