[英]Rails hash of hashes in Javascript
我在rails中有哈希哈希,比如:
{"round"=>1, "turn"=>1, "attacker_hp"=>11220, "defender_hp"=>205, "damage"=>95, "attacker"=>#<User id: 2, email:...>}, {"round"=>1, "turn"=>2, "attacker_hp"=>11220, "defender_hp"=>205, "damage"=>95, "attacker"=>#<User id: 1, email:...>} ...
所以,正如你所看到的,在這個哈希中,有許多哈希表示戰斗轉向。 還有一個哈希條目,其中包含一個完整的object.attributes('攻擊者'條目')。
現在,我想在Rails中使用JQuery來表示。 我試過用類似的東西:
var combat_stats = <%= array_or_string_for_javascript(@combat) %>;
在Javascript中獲取值。 這有效,但有一個重要問題。 它似乎創建了一個字符串數組。 因此,內部哈希現在是字符串,這使我無法在javascript中解析。
我的問題是,我如何訪問以下值:
turn['attacker']['name'] or turn['attacker_hp']
我可以輕松地在Rails視圖中的@ combat.each循環中做什么?
你熟悉JSON結構嗎? 您可以使用@combat.to_json
然后使用json而不是數組。
有了它,您可以像在rails中一樣輕松訪問值,例如:
var foo = {
bar: 1,
x: [1, 2, 3],
y: {
a: "string"
}
}
foo.bar或foo [“bar”]將返回1
foo.x將返回數組[1,2,3]
foo.ya將返回“string”
等等...
編輯:
也許您需要使用@combat.to_json.html_safe
因為當您使用<%=%>時應該對其進行html解析
console.log(JSON.parse('<%= @link.errors.messages.to_json.html_safe%>'))
返回對象
所以
JSON.parse('<%= @link.errors.messages.to_json.html_safe%>')
可以用作js對象
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.