我的model方法中有下面这行代码。
subjectsinlist='['
subjectlist.subjects.each do |subject|
subjectsinlist=subjectsinlist+subject.subject_code+', '
end
subjectsinlist.chomp(', ')
subjectsinlist+="]"要追加的字符串的示例如下:
CPE205 CPE206 CPE301 CPE302 HW0210因此,我期望结果是:
[CPE205, CPE206, CPE301, CPE302, HW0210]但我得到的却是:
[CPE205, CPE206, CPE301, CPE302, HW0210, ]chomp方法似乎不起作用。任何关于为什么会发生这种情况的建议都将不胜感激。
发布于 2013-02-21 03:12:53
chomp返回一个新字符串,请参阅here
但是你必须将新的字符串赋给一个变量:
subjectsinlist = subjectsinlist.chomp(', ')发布于 2013-02-21 03:13:24
这可以做到这一点:
codes = "[#{subjectlist.subjects.map(&:subject_code).join(', ')}]"以下是一些解释:
map(&:subject_code)将在subjectlist.subjects
subject_code方法join(', ')将在数组的每个元素之间放置',‘(coma-)(最后一个元素除外)。 join 方法就是您需要的 ;-)
发布于 2013-02-21 03:10:05
subjectsinlist = '[' + subjectlist.subjects.join(', ') + ']'
这应该行得通。
chomp不适合您的原因是它返回一个新的字符串,而不是更改现有的字符串:http://apidock.com/ruby/String/chomp
https://stackoverflow.com/questions/14987973
复制相似问题