将(Angular)数组传递给Rails表单字段

时间:2014-12-18 14:36:40

标签: javascript ruby-on-rails arrays json forms

我有一个Rails / Angular应用程序,在编辑页面上,我对文本字段输入进行了一些处理。然后我想将结果传递给另一个(不可见)文本字段,它是Rails表单的一部分。处理结果是一个数组,在传递给(通常不可见)文本字段后,如下所示。

Rails form field 当我现在发送表单时,我在后端得到以下错误(后端正在等待数组处理):

undefined method `each' for "[\"mvsdjfs\"]":String

对我而言似乎是因为我正在发送文本字段的内容,所以它是以字符串形式发送的。将此作为数组发送的最佳方法是什么?谢谢!

2 个答案:

答案 0 :(得分:0)

2.1.5 :016 > c = "one, two, three"
 => "one, two, three" 
2.1.5 :017 > c.split(',')
 => ["one", " two", " three"] 

来自问题评论:

  

如果没有,字符串保持字符串?

您至少需要拆分一些元素,并且在更新隐藏字段时需要使用javascript添加此元素。

2.1.5 :018 > c = "one/ two/ three"
 => "one/ two/ three" 
2.1.5 :019 > c.split('/')
 => ["one", " two", " three"] 

答案 1 :(得分:0)

我最后添加了一个像这样的辅助方法,如果它可以帮助某人,但会将其添加为答案,但是当你向我指出正确的方向时会接受你的答案:)

def something
  array_i_fy(params[:contact][:labels]).each do .....
end

def array_i_fy(object)
  return object.str.split(',') if object.class == Array
  [object]
end