私は完全なレールの初心者ですので、これが些細な場合は私を許してください。関連付けられているモデルが作成されていません
class Inventory < ActiveRecord::Base
belongs_to :trader, :polymorphic => true
end
class Store < ActiveRecord::Base
has_one :inventory, :as => :trader, :dependent => :destroy
end
class TravelingParty < ActiveRecord::Base
has_many :travelers, :dependent => :destroy
has_one :inventory, :as => :trader, :dependent => :destroy
validates_presence_of :speed, :ration, :position
accepts_nested_attributes_for :travelers, :reject_if => :reject_traveler, :allow_destroy => true
accepts_nested_attributes_for :inventory, :allow_destroy => true
def reject_traveler(attributes)
attributes['profession'].blank? and attributes['name'].blank?
end
end
私は、提出されたときに、旅行者や旅行者の数を作成し、フォームを作成しました:
は、私が店や旅行パーティーBELONGS_TOいずれかの在庫モデルを持っています。今私は、インベントリを作成し、すべての変数を0に初期化するフォームをしたいと思います。次の変数の初期化には対処しませんが、インベントリデータベーステーブルにNULL値の行を配置するようにも見えません。良い測定のために
class TravelingPartiesController < ApplicationController
def new
@traveling_party = TravelingParty.new
5.times do
traveler = @traveling_party.travelers.build
end
@inventory = @traveling_party.inventory.create
end
def create
@traveling_party = TravelingParty.new(params[:traveling_party])
if @traveling_party.save
flash[:notice] = "Successfully created traveling party and travelers."
redirect_to '/store/'
else
flash[:error] = "Please specify a leader."
redirect_to '/new/'
end
end
def index
end
end
、ここではデータベーススキーマは次のようになります。
ActiveRecord::Schema.define(:version => 20111018224808) do
create_table "inventories", :force => true do |t|
t.integer "ox"
t.integer "food"
t.integer "clothing"
t.integer "ammunition"
t.integer "money"
t.integer "axle"
t.integer "wheel"
t.integer "tongue"
t.datetime "created_at"
t.datetime "updated_at"
t.integer "trader_id"
end
create_table "stores", :force => true do |t|
t.string "name"
t.integer "location"
t.integer "priceScale"
t.datetime "created_at"
t.datetime "updated_at"
end
# Could not dump table "travelers" because of following StandardError
# Unknown type 'relations' for column 'traveling_party_id'
create_table "traveling_parties", :force => true do |t|
t.integer "speed"
t.integer "ration"
t.integer "position"
t.datetime "created_at"
t.datetime "updated_at"
end
end
インベントリデータベーステーブルが全く影響されていない理由はありますか?それがうまくいくと、traveling_party.inventoryを初期化してすべて0にする最良の方法は何でしょうか? (すなわち、牛、食物、衣類などの値)。
での移行を作成することができると信じて
を(あなたは、他の選択肢が存在しない場合、それは常に0に初期化する場合はそれ以外の場合はnilにデフォルト設定されます)次のStandardErrorのためにテーブル "旅行者"をダンプしないでください #列 'traveling_party_id''Unknown type' relations ' – Matthew