在紅寶石對象內導航非常簡單。考慮下面的僞代碼,並利用這一段爲例輸入,下面的調用有意義,工作原理:導航Ruby對象
forth_word = Par.sentence[0].word[3]
puts forth_word.text #"ruby"
puts forth_word.type #:noun
僞包含在每個其他中類代碼:(排序的嵌套,但不是嚴格OOP意義)
class Paragraph
@page_number = #1 (default)
@sentences = []
end
class Sentence
@is_a_quote = #false (default)
@words = []
end
class Word
@text =# "ruby"
@type =# :noun
def in_a_quote?
#... return [email protected]_a_quote
end
def on_page
#... return Paragraph.Sentence.page
end
end
,當我嘗試向上導航Ruby對象樹...又名詢問從裏面的Word屬於句子或段落對象的信息最棘手的部分就越大。任何建議,我怎麼能代碼的最後2種方法:
puts forth_word.in_a_quote #false
puts forth_word.on_page #1
這種類型的數據結構不適合您的要求。將數據存儲在sql中,並使用ORM按照您的設想檢索數據。 –
請將「sudo」更改爲「pseudo」。這讓我瘋狂。而且,對於'Sentence'和'Word'來嵌套,你需要定義它們'class Sentence
@CarySwoveland:Omigod,你是個天才。我試圖弄清楚這與超級用戶權限有什麼關係......但是,在你的下一個評論中你錯了:OP不是按層次結構(is-a)嵌套,而是通過遏制(has- a,在實例變量中),這是正確的做法:「Word」當然不是「Sentence」類型,也不是「Paragraph」類型的「Sentence」。 – Amadan