首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails chomp方法不起作用

Rails chomp方法不起作用
EN

Stack Overflow用户
提问于 2013-02-21 03:08:11
回答 3查看 1.8K关注 0票数 0

我的model方法中有下面这行代码。

代码语言:javascript
复制
subjectsinlist='['
subjectlist.subjects.each do |subject|
     subjectsinlist=subjectsinlist+subject.subject_code+', '
end
subjectsinlist.chomp(', ')
subjectsinlist+="]"

要追加的字符串的示例如下:

代码语言:javascript
复制
CPE205 CPE206 CPE301 CPE302 HW0210

因此,我期望结果是:

代码语言:javascript
复制
[CPE205, CPE206, CPE301, CPE302, HW0210]

但我得到的却是:

代码语言:javascript
复制
[CPE205, CPE206, CPE301, CPE302, HW0210, ]

chomp方法似乎不起作用。任何关于为什么会发生这种情况的建议都将不胜感激。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-21 03:12:53

chomp返回一个新字符串,请参阅here

但是你必须将新的字符串赋给一个变量:

代码语言:javascript
复制
subjectsinlist = subjectsinlist.chomp(', ')
票数 3
EN

Stack Overflow用户

发布于 2013-02-21 03:13:24

这可以做到这一点:

代码语言:javascript
复制
codes = "[#{subjectlist.subjects.map(&:subject_code).join(', ')}]"

以下是一些解释:

map(&:subject_code)将在subjectlist.subjects

  • The返回的数组的每个元素上调用subject_code方法join(', ')将在数组的每个元素之间放置',‘(coma-)(最后一个元素除外)。

join 方法就是您需要的 ;-)

票数 2
EN

Stack Overflow用户

发布于 2013-02-21 03:10:05

subjectsinlist = '[' + subjectlist.subjects.join(', ') + ']'

这应该行得通。

chomp不适合您的原因是它返回一个新的字符串,而不是更改现有的字符串:http://apidock.com/ruby/String/chomp

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14987973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档