Rails x-editable把破折号放入文本字​​段

时间:2013-08-03 20:28:19

标签: ruby-on-rails twitter-bootstrap

我试图使用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;

见附图。

感谢您的帮助!

enter image description here

1 个答案:

答案 0 :(得分:1)

我使用bootstrap-editable 1.5.1没有gem并且遇到类似的问题,因为发送到后端的布尔值是一个数组(因为清单类型)即在r​​ails 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

我也希望看到更简洁的方法!