想想這些代碼行:的Ruby/Rails的方法來檢查,如果在Array對象在其他數組存在
@boss_locations = BossLocation.order('min_level asc').all
@discovered = current_user.discovered_locations.includes(:boss_location).all
第一個得到所有可用的老大位置。第二個,獲取所有發現的用戶位置(user_id,boss_location_id),還包含boss_location對象。
現在,在我看來,我想根據@discovered上是否存在老闆位置來呈現每個老闆的位置和「發現」或「未發現」等消息。
現在,我的問題是如何以簡單的方式提供我的視圖來做到這一點。我可以遍歷這兩個數組,但我很確定這不是更好的方法。也許有一種很好的方式根據爲用戶發現的老闆位置來映射所有老闆的位置。你會怎麼做?
編輯 - 變量有:
@boss_locations:
=> [#<BossLocation id: 670261930, name: "Fire Swamp", location_index: 1, min_level: 5, needed_gold_to_open: 500, created_at: "2011-05-18 05:35:48", updated_at: "2011-05-18 05:35:48">, #<BossLocation id: 723149845, name: "Rabbit Remains", location_index: 3, min_level: 15, needed_gold_to_open: 3000, created_at: "2011-05-18 05:35:48", updated_at: "2011-05-18 05:35:48">, #<BossLocation id: 81327760, name: "Grateful Plains", location_index: 2, min_level: 10, needed_gold_to_open: 1200, created_at: "2011-05-18 05:35:48", updated_at: "2011-05-18 05:35:48">]
@discovered:
=> [#<DiscoveredLocation id: 736487645, user_id: 986759322, boss_location_id: 670261930, created_at: "2011-05-22 05:37:01", updated_at: "2011-05-22 05:37:01">, #<DiscoveredLocation id: 736487646, user_id: 986759322, boss_location_id: 723149845, created_at: "2011-05-22 05:37:06", updated_at: "2011-05-22 05:37:06">, #<DiscoveredLocation id: 736487647, user_id: 986759322, boss_location_id: 81327760, created_at: "2011-05-22 06:01:35", updated_at: "2011-05-22 06:01:35">]
可以顯示'@ boss_locations'和'@ discovered'的例子嗎?可能會有幫助:'[1,3,5]&[1,2,3]#=> [1,3]' – 2011-05-22 06:09:01
'discovered_locations'返回什麼?它是一個'BossLocation'的數組,還是一些通用的'Location'類型。 – dwhalen 2011-05-22 06:30:56
納什,這似乎是一個好主意。唯一的問題是@boss_locations有老闆的位置,而發現的主要是發現了包含老闆位置的地點。我編輯說明thanx球員 – Spyros 2011-05-22 06:34:23