0

モデル

class Pm < ActiveRecord::Base
  attr_accessor :name
end

コンソール

me = Pm.new
  #=> <Pm id: nil, name: nil, created_at: nil, updated_at: nil>
me.name = "Josh"
  #=> "Josh"
me.save
  #=>(0.4ms)  BEGIN
  #=> true
  #=> SQL (0.8ms)  INSERT INTO "pms" ("created_at", "name", "updated_at") VALUES ($1, $2, $3) RETURNING "id"  [["created_at", Sat, 01 Jun 2013 19:02:27 UTC +00:00], ["name", nil], ["updated_at", Sat, 01 Jun 2013 19:02:27 UTC +00:00]]
  #=>(1.3ms)  COMMIT
me
  #=> <Pm id: 4, name: nil, created_at: "2013-06-01 19:02:27", updated_at: "2013-06-01 19:02:27">

name属性とattr_accessor定義済みのモデルがあります。nameレコードは保存されますが、属性は更新されません。ここで簡単なものが欠けていますか?

4

1 に答える 1

1

Pmpモデル ("Pimp"? "Pump"? "Pimple"?) に "name" という DB フィールドがある場合、 を使用する理由はありませんattr_accessor :name。ではattr_accessor :name、ActiveRecord の動的に生成された属性メソッドが呼び出されることはありません。つまり、属性がデータベースに保存されないということです。

于 2013-06-01T19:23:53.900 に答える