Mam proste sprawy, z udziałem dwóch klas model:(Obiekt nie obsługuje #inspect)
class Game < ActiveRecord::Base
has_many :snapshots
def initialize(params={})
# ...
end
end
class Snapshot < ActiveRecord::Base
belongs_to :game
def initialize(params={})
# ...
end
end
z tych wędrówek:
class CreateGames < ActiveRecord::Migration
def change
create_table :games do |t|
t.string :name
t.string :difficulty
t.string :status
t.timestamps
end
end
end
class CreateSnapshots < ActiveRecord::Migration
def change
create_table :snapshots do |t|
t.integer :game_id
t.integer :branch_mark
t.string :previous_state
t.integer :new_row
t.integer :new_column
t.integer :new_value
t.timestamps
end
end
end
Gdybym próby utworzenia instancji w Snapshot szyny konsoli, używając
Snapshot.new
uzyskać
(Object doesn't support #inspect)
Teraz za dobrą część. Jeśli skomentuję metodę initialize w snapshot.rb, uruchomi się Snapshot.new. Dlaczego to się dzieje?
BTW używam Rails 3.1 i Ruby 1.9.2
Chociaż nie był to Twój problem, pojawia się on, gdy w niestandardowej metodzie 'inspect' pojawia się błąd. Pierwotny błąd nie jest widoczny, co może być denerwujące. –