में उचित विदेशी कुंजी का उत्पादन नहीं कर रहा है, मैं रेल 3 पर एक आवेदन अपडेट कर रहा हूं और मुझे एक कस्टम विदेशी कुंजी बनाने में परेशानी हो रही है। मैं कुछ इस तरह है:एक कस्टम क्लास_नाम के साथ संबंधित है जो रेल 3
class Product < ActiveRecord::Base
belongs_to :owner, :class_name => 'User'
...
end
class User < ActiveRecord::Base
has_many :products
...
end
class ProductsController < ApplicationController
before_filter :authenticate_user!
def index
@products = current_user.products
end
end
दृश्य:
Mysql::Error: Unknown column 'products.user_id' in 'where clause': SELECT `products`.* FROM `products` WHERE (`products`.user_id = 1)
यह belongs_to :owner
देख सकते हैं और एक विदेशी कुंजी के लिए दिखना चाहिए:
<%- @products.each do |p| -%>
<%= p.created_at %><br />
<%- end -%>
मैं अपने रेल में इस त्रुटि के लिए लॉग इन मिलता है owner_id
कहा जाता है। मैंने स्पष्ट रूप से विदेशी कुंजी को सेट करने का भी प्रयास किया और यह काम नहीं करता है। मैंने एक संभावित रेल 3 बग के लिए लाइटहाउस की भी जांच की लेकिन कोई भाग्य नहीं।
इस काम किया, लेकिन मैं यह थोड़ा अजीब है कि मैं अपने रेल के साथ यह करने के लिए नहीं था है लगता है: तो एक व्यक्ति वर्ग करता है कि एक has_many संघ का उपयोग करेगा "person_id" के रूप में डिफ़ॉल्ट 2 ऐप सुनिश्चित नहीं है कि इसे एक बग माना जाएगा – Tony
यह रेल 2 में समान होना चाहिए। :) – elektronaut
मेरे पास मेरी तालिका पर दो कॉलम हैं जो उपयोगकर्ता तालिका का संदर्भ देते हैं। क्या आप जानते हैं कि मैं संदर्भ कैसे स्थापित करूं? मैं ऊपर बताए गए मालिक_आईडी नहीं कह सकता क्योंकि मुझे मालिक और सबमिटिंग यूज़र की आवश्यकता है। धन्यवाद! – skaz