2013-04-14 24 views
0

如何連接Ruby on Rails中的變量?RoR:連接兩個變量並傳遞參數?

說我有這樣的:

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

我不知道如何把tagindex在一起嗎?是否有意義,我想通過參數tagtag_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_0 = client.tag_recent_media() 

另外,tag_recent_media()應該是從API我實例方法正在使用。 documentation顯示它應該傳遞一個字符串。

例如:

+1

我不明白這裏要問什麼。什麼是期望的輸出? –

+0

@MarkRushakoff我更新了我的問題,希望它更有意義? – hellomello

回答

0

字符串的鏈接可以使用concat方法來完成

在你的情況我假設你有tagstring型和indexinteger類型。所以你可以這樣做:

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

你沒有清楚地指出你的tag_recent_media在做什麼。如果您提供有關您撥打電話的方法的更多信息,則可以輕鬆幫助您獲得正確的答案。

+0

我用你的解決方案更新了我的問題,但遇到問題,我討論了'tag_recent_media'的作用。希望這是有道理的? – hellomello

0

我想要做的是我遍歷標籤,我試圖將標籤的索引位置應用到標籤值,然後使用它作爲變量。

所以如果第一個值,它迭代位於0和被重視「蘋果」然後我想有可變

@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陣列迭代。