8

モデルがあります

class PlaylistModel < ActiveRecord::Base
    /* code */
end

そして、コントローラーアクションには次のようなコードがあります

PlaylistController < ActionController::Base
  def a_action
    @item = Playlist.find(10)
    @item[:visited] = true     
  end
end

ただし、 (またはプレイリストテーブルのスキーマで)visited定義された属性はありません!PlaylistModel新しい属性がオブジェクトに動的に追加されているようです。これは何が起こっているのか、そしてこのすべての機能はどこで定義されているのか/どこでそれについてもっと読むことができますか?

助けてくれてありがとう!

4

2 に答える 2

13

これは、ここで説明されている属性セッターのショートカットです。これは、次とほぼ同等です。

@item.attributes[:visited] = true
于 2012-09-20T20:11:13.777 に答える
2

あなたが探しているのは仮想属性だと思います...モデルhttp://railscasts.com/episodes/16-virtual-attributesで定義できます

于 2012-09-20T20:20:50.200 に答える