class PlaylistModel < ActiveRecord::Base
/* code */
end
,然後在控制器的動作有這樣
PlaylistController < ActionController::Base
def a_action
@item = Playlist.find(10)
@item[:visited] = true
end
end
代碼然而存在PlaylistModel
沒有定義visited
屬性(或者在模式爲播放列表表) !它看起來像一個新的屬性被動態添加到對象。這是怎麼回事?定義的所有功能在哪裏?我可以在哪裏閱讀更多信息。
感謝您的幫助!
有趣的是,似乎你可以添加屬性通過說@item [:visited] = true,但是當你鍵入@ item.inspect時,[:visited] = true屬性沒有被列出......但顯然可以通過鍵入@item [:visited] – Abram
屬性編寫器在檢查模型時不一定會公開所有屬性。它只公開定義的列名和通過'attr_accessor','attr_reader'等可訪問的屬性。請參閱我在下面發佈的鏈接。 – PinnyM