rails console で使えるreload!とActiveRecord:Baseを継承したClassが使えるreloadの2つがあります。
前者は、app配下(あたり)にあるソースコードを読み直します。ちなみにconfig/initializer配下など一部は読みません。
使いどころですが、modelのコードを変更した後に、consoleプロセスをexitして起動より早いので割りと使います。
後者のreloadは、ARインスタンスをデータベースから再取得を行います。
例えば、ロードしたインスタンスAはメモリ上にあるただのオブジェクトなので、
別のリクエストで発生したプロセスがDBのカラムを変更した時に即座にはインスタンスAに反映されません。
@model = Model.find(1) # @model.name => 'RubyKaigi'
Model.find(1).update_column(:name, 'Pycon')
@model.name # => # @model.name => 'RubyKaigi'
@model.reload.name => # @model.name => 'Pycon'
reloadを実行するとデータベースの値を取得しています。
ちなみに
@model = Model.find(@model)
@model.reload
は同様のSQLを実行しています。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2014/09/24 00:44