【问题标题】:Converting an object's attribute to an array in Rails在 Rails 中将对象的属性转换为数组
【发布时间】:2013-04-11 20:19:47
【问题描述】:

我的 Rails 应用程序中有一个表单,在表单中,有一个对应于 :mylist 的文本框,这是我的类 Catcher 对象的一个​​属性 @mycatcherobject 在表单中,人们会粘贴一些看起来像这样的东西:

FRI.9234.43.32340.pdf

NNY.6042.43.5523.pdf

LJN.9867.56.1659.pdf

提交表单后,我需要将粘贴到该文本框中的内容(即 :mylist 现在的值)转换为数组。对于上面的例子,数组中会有三个元素(上面的每一项都有一个)。

你知道怎么做吗?我不知道如何在任何地方将对象的属性值转换为数组。

我已经尝试过 %w(#{@mycatcherobject.mylist}) 之类的方法,但这不起作用。

我是 Rails 的新手,如果这看起来很明显,我深表歉意。非常感谢您的帮助。

【问题讨论】:

    标签: ruby-on-rails ruby arrays forms attributes


    【解决方案1】:

    在控制器中作为参数 [:name of the field] 出现,您可以编写正则表达式来拆分字符串。如果元素由逗号或特殊字符分隔,您可以执行类似

    的操作
    result = params[:list].split(",")
    

    【讨论】:

    • 非常感谢您的回复。我对你的建议有点混乱。这就是最终为我工作的东西:mylistarray = @mycatcherobject.mylist.split(",")
    • 当然,完成(我是新手,所以我不清楚这里的情况如何)。我想补充的一件事是,我最终将我的表达方式改为mylistarray = @mycatcherobject.mylist.split(/[\r\n]+/)。这提取了新的换行代码并将值分成数组中的三个不同元素。在此之前,用我上面列出的表达式,它们都像一根长长的弦一样聚在一起,而没有分成三个不同的弦。一旦我做出了最后的改变,它就完美地工作了。
    猜你喜欢
    • 2022-12-08
    • 2019-02-10
    • 1970-01-01
    • 1970-01-01
    • 2019-06-05
    • 1970-01-01
    • 2016-03-22
    • 1970-01-01
    相关资源
    最近更新 更多