我的模型方法中有以下代码行。
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
方法似乎不起作用。
任何关于为什么会发生这种情况的建议都会受到赞赏。
答案 0 :(得分:3)
答案 1 :(得分:2)
这可以解决问题:
codes = "[#{subjectlist.subjects.map(&:subject_code).join(', ')}]"
一些解释:
map(&:subject_code)
将在subject_code
subjectlist.subjects
join(', ')
会在数组的每个元素(最后一个元素除外)之间放置','(逗号空间)。
join
方法就是您需要的方法; - )
答案 2 :(得分:1)
subjectsinlist = '[' + subjectlist.subjects.join(', ') + ']'
这应该有效。
chomp不适合你的原因是因为它返回一个新字符串,而不是更改现有字符串:http://apidock.com/ruby/String/chomp