如何在Ruby on Rails中连接变量?
说我有这个:
tags.each do |tag, index|
@tag_index = client.tag_recent_media(tag)
end
我不确定如何将tag
和index
放在一起?我是否有必要将参数tag
传递给tag_recent_media
?
由于
修改
我应用了以下答案:
@tag.concat(index.to_s) = client.tag_recent_media(tag)
我收到语法错误
syntax error, unexpected '=', expecting keyword_end
@tag.concat(index.to_s) = client.tag_recent_media(tag)
我正在尝试做的是我正在迭代tags
并且我正在尝试将标记的index
位置应用到tag
值,然后使用该值作为变量。
所以如果它迭代的第一个值定位为0并且值为“apple”那么我想要变量
@apple_0 = client.tag_recent_media()
此外,tag_recent_media()
应该是我正在使用的API的实例方法。 documentation表示它应该传递一个字符串。
答案 0 :(得分:0)
字符串的连接可以使用concat方法完成:
例如:
在您的情况下,我假设您tag
类型为string
,index
类型为integer
类型。所以你可以这样做:
a="tag"; b=1
a.concat(b.to_s) #=> "tag1"
您未明确指出tag_recent_media
正在做什么。如果您提供有关所调用方法的更多信息,将很容易为您提供正确答案。
答案 1 :(得分:0)
我正在尝试做的是我正在迭代标记,我正在尝试将标记的索引位置应用到标记值,然后将其用作变量。
所以如果它迭代的第一个值定位为0并且值为“apple”那么我想要变量
@apple_0 = client.tag_recent_media()
这将需要元编程和定义动态方法,在这种情况下它是非常糟糕的方法。为什么阵列不够你呢?
@new_tags = []
tags.each do |tag, index|
@new_tags[index] = client.tag_recent_media(tag)
end
甚至更好
@new_tags = []
tags.each_with_index.map {|tag, i| @new_tags[i] = client.tag_recent_media(tag) }
然后你可以遍历@new_tag数组。