我有以下Ruby on Rails params
:
<ActionController::Parameters {"type"=>["abc, def"], "format"=>:json, "controller"=>"order", "action"=>"index"} permitted: false>
我想检查字符串中是否有,
,然后将其分成两个字符串,如下所示,并更新type
中的params
。
<ActionController::Parameters {"type"=>["abc", "def"], "format"=>:json, "controller"=>"order", "action"=>"index"} permitted: false>
我试着这样做:
params[:type][0].split(",") #=> ["abc", " def"]
但我不确定为什么在第二个字符串之前有空格。
我怎样才能做到这一点?
答案 0 :(得分:1)
因为字符串中有空格,所以使用split的结果也会将它包含在数组的splitted元素中。
您可以首先删除空格,然后使用拆分。或者添加', '
作为拆分值,以便使用逗号和后面的空格。或者根据你想要获得的结果,在数组中映射结果元素并删除那里的空格,如:
string = 'abc, def'
p string.split ',' # ["abc", " def"]
p string.split ', ' # ["abc", "def"]
p string.delete(' ').split ',' # ["abc", "def"]
p string.split(',').map &:strip # ["abc", "def"]