Estoy actualizando una aplicación a Rails 3 y tengo problemas para crear una clave externa personalizada. Tengo algo como esto:belongs_to con un nombre de clase personalizado que no produce la clave externa adecuada en Rails 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
La vista:
<%- @products.each do |p| -%>
<%= p.created_at %><br />
<%- end -%>
consigo este error en mis rieles log:
Mysql::Error: Unknown column 'products.user_id' in 'where clause': SELECT `products`.* FROM `products` WHERE (`products`.user_id = 1)
Debería ver el belongs_to :owner
y buscar una clave externa llamado owner_id
. Incluso traté de configurar explícitamente la clave externa y eso no funciona. También revisé el faro para detectar un posible error de Rails 3 pero no tuve suerte.
esto funcionó, pero supongo que es un poco extraño que yo no tenía que ver con mis rieles 2 aplicaciones no estoy seguro de que se considere un error – Tony
Debe ser el mismo en Rails 2. :) – elektronaut
Tengo dos columnas en la tabla que hacen referencia a la tabla de usuario. ¿Sabes cómo iba a configurar la referencia? No puedo decir owner_id como se sugirió anteriormente porque necesito Owner and SubmittingUser. ¡Gracias! – skaz