質問

私のシーケンスの移動には、レールアプリを含む以下の手順:

  1. 作成の基本バージョンのユーザーモデル
  2. インスタンスを生成しますこのモデルがあるわけではありませんが与えられたテーブルを作成する初期ユーザーの私のシステムを導入するように、ログインすることができますよび利用開始で
  3. 更新の"ユーザモデルを追加する新しい分野に/カラムです。

今は私が使っている"validates_inclusion_of"この新しい分野に/カラムです。この現代美術館など自分の初期開発機があったのでこれらのデータベースの移動に適用されます。しかし、行った場合は、新鮮な機械の移動、ステップ2に失敗したので、validates_inclusion_ofに失敗した場合、この分野からの移行3な追加されたモデルクラス。

回避策として、私のコメントの"validates_..."線の移動、strncasecmpで、実際にはそうではありません。

ように再度ご注文の私の移動で、ユーザの作成(ステップ2)、後全てのカラムが追加されました。

私はレールのピがいをお願いうのに適した方法での取り扱い状況:)

役に立ちましたか?

解決

最も簡単な方法は避けるこの問題は、利用rake db:スキーマ:負荷の機械ではなく、db:移行します。D:S:L用のスキーマ.rbへの負荷は、最新のバージョンのスキーマと移行で形を作りました。

こんなときにこの問題の導入時には、生産機械(保存データが重要だと思っている統合のご移動を単一のファイルな紛争の絶えない領域でもある。

他のヒント

きを宣言するクラスと同じ名前のクラス内での移動でオーバーライドをアプリ-モデル一:

class YourMigration < ActiveRecord::Migration

  class User < ActiveRecord::Base; end

  def self.up
    # User.create(:name => 'admin')
  end

end

残念ながら、IDEがあるのでしょうか自動補完に基づくこのクラス(ボタンひい)は使用できなくなモデルの論理があり除く場合は複製します。

私はどうしていくべきなのかについてこの権利ます。サービBiHiのアドバイス、僕の負荷のモデルは手動でその後の再定義する手法が必要です。

load(File.join(RAILS_ROOT,"app/models/user.rb"))
class User < ActiveRecord::Base
  def before_validation; nil; end # clear out the breaking before_validation
  def column1; "hello"; end       # satisfy validates_inclusion_of :column1
end
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top