2011-12-11 33 views
12

Lưu trữ các mục has_many và một Item thuộc_to StoreRails 3 - liên kết has_many không lưu (TypeError)

Tôi tạo một cửa hàng mới, lưu nó, tất cả đều tốt. Tôi kiểm tra tôi có thể gọi .items trên đó.

ruby-1.9.2-p290 :063 > s.items 
    Item Load (0.3ms) SELECT "items".* FROM "items" WHERE "items"."store_id" = 12 
=> [] 

Nhưng khi tôi cố gắng gọi tạo hoặc hợp lệ? nó trả về những điều sau đây:

ruby-1.9.2-p290 :064 > s.items.create 
    Store Load (0.7ms) SELECT "stores".* FROM "stores" WHERE "stores"."id" = 12 LIMIT 1 
TypeError: Cannot visit Store 

Tôi chưa bao giờ thấy lỗi sau đây trước đây, vì vậy nó đang làm đầu của tôi!


EDIT: Sau một thả và remigrate, vẫn nhận được như sau:

ruby-1.9.2-p290 :008 > Item.create(:store_id => 5) 
    Store Load (0.2ms) SELECT "stores".* FROM "stores" WHERE "stores"."id" = 5 LIMIT 1 
TypeError: Cannot visit Store 
+0

Tôi có một has_many khác, thuộc về hiệp hội (cùng một dự án) đang làm việc tất cả ngựa và kỳ lân. Tôi không thể hiểu chuyện gì đang xảy ra với cái này. – Galaxy

+0

Có vẻ như lỗi đến từ Arel – clyfe

Trả lời

37

Trong trường hợp bất cứ ai khác chạy vào vấn đề này, Hóa ra lại là một vấn đề xác nhận với 'hàng' mô hình. Ban đầu tôi đã thiết lập cài đặt này:

validates :name, :presence => true, uniqueness => { :scope => :store }   

Với phạm vi vừa được đặt thành: lưu trữ. Hóa ra tôi cần phải nói rõ: store_id:

validates :name, :presence => true, uniqueness => { :scope => :store_id }   
Các vấn đề liên quan