Tengo dos modelos: Mostrar y Repartir.Nombre de la columna vacía al destruir el objeto
class Show < ActiveRecord::Base
has_many :deals, :inverse_of => :show, :dependent => :destroy
...
class Deal < ActiveRecord::Base
belongs_to :show, :inverse_of => :deals
...
Cuando intento de destruir Mostrar consigo este error:
PG::Error: ERROR: zero-length delimited identifier at or near """"
LINE 1: DELETE FROM "deals" WHERE "deals"."" = $1
¿Por qué el nombre de la columna vacía? En schema.rb:
create_table "deals", :id => false, :force => true do |t|
t.integer "discount_id"
t.integer "show_id"
end
create_table "shows", :force => true do |t|
t.integer "movie_id"
t.integer "hall_id"
t.datetime "show_time"
t.integer "city_id"
t.integer "price"
end
Clave externa añadido a la base de datos
CONSTRAINT fk_deals_shows FOREIGN KEY (show_id)
REFERENCES shows (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
P. S. Resolví este problema agregando la clave principal a la tabla de ofertas, pero realmente no la necesito allí. Entonces la pregunta sigue siendo real. ¿Puedo usar la dependencia con modelos sin una clave principal de identificación?
en su ejemplo, la relación entre las entidades es uno a uno, pero en mi caso es uno a muchos, por lo que 'ofertas' es correcto – Donotello