(參見第一片的下面的代碼)我使用數組@post_csv_order
指定散列@post[post_id]
元件的順序和密鑰=>值關係。當我收集所有值(如forum_id,post_title等)時,我在循環中運行賦值行@post[forum_id] = Hash[*@post_csv_order.flatten]
。爲什麼我想要這個數組?我想只在一個地方有所有的鍵名(= csv頭)和key =>值定義。因此,當我更改訂單或添加新的細節時,我不需要在代碼的其他任何地方進行更改。即使使用對象而不是散列,我也希望擁有這種數組方法。正確的代碼流在附加的代碼? (紅寶石)
要創建數組@post_csv_order
必須定義數組的第二項,否則我得到undefined local variable or method
。更多關於整個腳本
點點:它流像我但─解析論壇頁面,並且給了我posts.I過程的數組,並獲得我每想後的所有細節,並儲存它。我想在此時使用數組@post_csv_order
來創建這些細節的新散列。我還希望使用數組@post_csv_order
來保存我獲取到csv的所有數據,並且在我運行腳本時下次讀取該csv,以便可以更新任何字段(如上次發佈作者,最後發佈日期,視圖數量)。
require 'pp'
@post = {}
forum_id = 123
post_title = "Test post"
@post_csv_order = [
["ForumID" , forum_id],
["Post title", post_title]
]
@post[forum_id] = Hash[*@post_csv_order.flatten]
pp @post
,所以我想我可以通過定義陣列中使用的所有變量,並將其forum_id , post_title = ""
分配空字符串修復它,但我不知道這是否是正確的方式如何在Ruby中做到這一點。
require 'pp'
@post = {}
forum_id , post_title = ""
@post_csv_order = [
["ForumID" , forum_id],
["Post title", post_title]
]
forum_id = 123
post_title = "Test post"
@post[forum_id] = Hash[*@post_csv_order.flatten]
pp @post
PS。有人可以建議或編輯標題嗎?我不知道如何命名它...
讓我們來說說我想對我的腳本做什麼...也許它給每個人更好的照片這裏發生了什麼。我想有一個數組什麼定義「一些文本」,並將此字符串鏈接到some_variable.So我認爲陣列數組是我的一個很好的解決方案,因爲我關心的是some_va的「一些文本」<->的順序riable ** construct.And我想**這個數組作爲一個位置定義**所有構造像那樣在整個腳本中。然後我想在存儲/訪問/保存/修改some_variable的值時使用這個數組。我可以使用散列哈希,散列對象或你建議 – Radek 2010-01-25 02:34:18