0

ここにありprompt.rbます:

class Prompt < ActiveRecord::Base
  attr_accessible :title, :teacherUrl, :studentUrl, :image, :text;

  validates :title, :length => { :minimum => 5 };

  has_attached_file :image ;

  def initialize(params = nil)
    super(params)
    after_initialize
  end

  def after_initialize()
    self.teacherUrl = 'T' + (0...4).map{65.+(rand(26)).chr}.join ;
    self.studentUrl = 'S' + (0...4).map{65.+(rand(26)).chr}.join ;
  end
end

(デフォルトの「新しい」メソッドから)prompt_controller.rbから新しいプロンプトを作成すると、次のようになります。

undefined method `teacherUrl=' for #<Prompt:0x007fe3ac68adc0>

アプリケーショントレースで

app/models/prompt.rb:14:in `after_initialize'
app/models/prompt.rb:10:in `initialize'
app/controllers/prompts_controller.rb:43:in `new'
app/controllers/prompts_controller.rb:43:in `new'

これはsqliteで完全に機能していました。データベースをPostgresに切り替えたところ、このエラーが発生しています...関連していないように見えますが、変更されたのはそれだけです(リビジョンに戻ると、再び完全に機能します)。

どうしたの?teacherUrl は attr_accessible で定義されていませんか?

4

1 に答える 1

2

You need to do rake db:migrate. And possibly rake db:create (first).

于 2012-11-21T23:59:30.250 に答える