0

如何在 Ruby on Rails 中连接变量?

说我有这个:

        tags.each do |tag, index|
            @tag_index = client.tag_recent_media(tag)
        end

我不知道如何把tagindex放在一起?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 的实例方法。文档显示它应该传递一个字符串。

4

2 回答 2

0

可以使用concat方法连接字符串:

例如:

在您的情况下,我假设您具有tag类型stringindex类型integer。因此,您可以执行以下操作:

 a="tag"; b=1
 a.concat(b.to_s)  #=> "tag1"

你没有清楚地表明你tag_recent_media在做什么。如果您提供有关您正在调用的方法的更多信息,它将很容易帮助您提供正确的答案。

于 2013-04-14T19:06:04.553 回答
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 数组。

于 2013-04-14T20:09:54.837 回答