我是RoR的新手。我试图找到一种方法,通过谷歌搜索来连接控制器循环中的字符串。
assets = Asset.where({ :current_status => ["active"] }).all
assets.each do |a|
string = string + ":"+ a.movie_title
end
我想将属性“movie_title”连接成一个冒号分隔的字符串。
但我收到错误
undefined method `+' for nil:NilClass
答案 0 :(得分:17)
最简单的方法可能是:
string = assets.collect(&:movie_title).join(':')
collect(&:movie_title)
与collect { |asset| asset.movie_title }
相同,后者返回电影标题数组。 join(':')
创建一个String,其中Array中的值由:
分隔。
答案 1 :(得分:9)
试试这个
assets = Asset.where({ :current_status => ["active"] }).all
string = ""
if assets.present?
assets.each do |a|
string = string + ":"+ a.movie_title
end
end
答案 2 :(得分:8)
为什么不呢:
"#{string} : #{a.movie_title}"
如果它们为零,您将获得" : "
答案 3 :(得分:3)