Ich aktualisiere eine Anwendung auf Rails 3 und habe Probleme beim Erstellen eines benutzerdefinierten Fremdschlüssels. Ich habe so etwas wie dies:orders_to mit einem benutzerdefinierten Klassenname, der in Rails 3 keinen korrekten Fremdschlüssel erzeugt
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
Aussicht:
<%- @products.each do |p| -%>
<%= p.created_at %><br />
<%- end -%>
ich diesen Fehler in meiner Rails log:
Mysql::Error: Unknown column 'products.user_id' in 'where clause': SELECT `products`.* FROM `products` WHERE (`products`.user_id = 1)
Es sollte die belongs_to :owner
und suchen Sie nach einem Fremdschlüssel sehen genannt owner_id
. Ich habe sogar versucht, den Fremdschlüssel explizit zu setzen, und das funktioniert nicht. Ich überprüfte auch den Leuchtturm auf einen möglichen Rails 3 Bug, aber kein Glück.
dies funktioniert, aber ich denke, es ist ein wenig seltsam, dass ich es nicht zu tun hatte mit meiner Rails 2 Apps nicht sicher, dass es als ein Fehler – Tony
Es sollte das gleiche in Rails 2 sein. :) – elektronaut
Ich habe zwei Spalten in meiner Tabelle, die die Benutzer-Tabelle verweisen. Weißt du, wie ich die Referenz einrichten würde? Ich kann nicht einfach owner_id wie oben vorgeschlagen sagen, da ich Owner und SubmittingUser benötige. Vielen Dank! – skaz