Hola tengo un pequeño problema de relacion de tablas.
verán tengo dos tablas, “usuarios_artista” y “diseno_catalogo”
class DisenoCatalogo < ActiveRecord::Base
set_table_name ‘diseno_catalogo’
belongs_to :usuarios_artista , :foreign_key =>“quien_usr”
end
class UsuariosArtista < ActiveRecord::Base
has_many :diseno_catalogo
end
luego tengo una consulta sql en un controller
def index
@artistas_sobre_media = UsuariosArtista.find_by_sql("SELECT
vista_obras_usr.id_user AS id,
vista_obras_usr.nombre,Avg(vote.voteValue) AS promedio,
count(vote.voto_id) as votos_totales,
obras_total FROM vista_obras_usr
LEFT JOIN vote on (vista_obras_usr.id_user= vote.quien)
GROUP BY vista_obras_usr.id_user HAVING votos_totales >=
‘media_votos’
ORDER BY promedio DESC , votos_totales DESC ,
vista_obras_usr.obras_total DESC,
vista_obras_usr.nombre ASC ")
end
es un poco compleja por eso no me fui el .find()
luego en la vista tengo esto
<% for artistas in @artistas_sobre_media %>
<%= artistas.diseno_catalogo[0].fondo %>
<% end %>
el problema es que no se establece la relacion de tablas, pero el
sql
de @artistas_sobre_media funciona bien, pero cuando intento acceder a
algun
campo de diseno_catalogo, rails me arroja el siguiente error
Mysql::Error: Unknown column ‘diseno_catalogo.usuarios_artista_id’ in
‘where
clause’: SELECT * FROM diseno_catalogo WHERE
(diseno_catalogo.usuarios_artista_id = 613)
el error es bastante ovbio , rails esta buscando
‘usuarios_artista_id’
que es un campo que no existe, pero no se como decirle a rails que
busque en
ves de ‘usuarios_artista_id’ a ‘quien_usr’, pero como eso lo defini en
el
modelo ‘diseno-catalogo.rb’ no se que puede estar pasando.
espero que se entienda el problema
Saludos Cordiales