problema con asociaciones

4 views
Skip to first unread message

Groteck

unread,
Oct 24, 2011, 2:56:31 PM10/24/11
to railsbridge-espanol
buenas tengro un problemilla con las relaciones, estoy haciendo una
comunidad tipica con un blog de momento que bueno aun no me termina de
arrancar, bueno explico lo que tengo y luego si lo he explicado bien
veis si la armo en algun sitio o como sigo, vemos:
1 tengo un blog_entries que evidentemente seran las entrdas de un
blog.
2 tengo un comments, que seran evidentemente los comentarios de cada
blog_entry
3 tags que son las tags de cada blog_entry
4 users , evidentemente este son los usuarios aunque este aun no me
preocupa mucho mas o menos lo tengo claro.

ok tengo un problema a la hora de relacionar blog_entries con casi
todo, me explico no entiendo bien como hacer que:

dentro del metodo show de blog_entries se vea en la parte inferior
despues de haber creado una entrada, los comments de esa entrada,
evidentemente la relacion entre blog_entries con comments es
has_many :comments y de coments con blog_entries es
belongs_to :blog_entry, y comments tiene un campo blog_entry_id asi
que mi pregunta es, como hago precisamente eso?, como muestro los
comments dentro de ese blog_blog entry?, he intentado hacerlo con
@blog_entry.comments pero no lo pilla entonces cual seria la forma
correcta de mostrarlos?

Carmen

unread,
Oct 28, 2011, 3:26:21 PM10/28/11
to railsbrid...@googlegroups.com
Holis 

Sorry por la tardanza. Según como explicaste debería estar funcionándote.  (Ignora este email si ya lo solucionaste) 
Talvez, me ayudaria mucho ver como hiciste las relaciones en tus modelos. Tenes un repositorio publico de lo que estas construyendo?  Si no lo tenes podrías copiar como lo tenes en tus modelos y controladores.  

class Blog  
    has_many :comments
end

class Comment 
   belongs_to :blog
end 

=== controlador
def show
   @blog = Blog.find(params[:id])
 etc...

end

=== Vista
<% @blog.comments.each do |comment| %> 
etc.

deberia funcionar... 
Dado la asociación, comments es un attributo de blog... 



2011/10/24 Groteck <gro...@gmail.com>



--
Carmencita

Fraire

unread,
Oct 28, 2011, 3:50:01 PM10/28/11
to railsbrid...@googlegroups.com
si ya lo solucione ahora estoy liado con la ultima parte la relación habtm quería tener un aspecto amplio de las relaciones asi que pille un blog porque tiene de todo, te comento como esta implementado el tags y si quieres escribo como solucione lo de interrelación 1 a muchos de antes, para que tambien quede en el grupo, por si algun otro novato lo quiere saber, bueno , te comento por donde voy luego si quieres explico como hice la 1 a muchos, vamos con la muchos a muchos entre blog_entries y tags, bueno tengo el tipico blog y le quiero añadir tags, 1 blog tiene muchas tags y un tag puede tener muchos blogs, asi que hay un problema, como capturar esto dado que lo tenemos que capturar en el formulario a la hora de crear un blog, entonces, como hago para crear un blog_entry y añadirle sus tags:

bueno en mi git tengo el controlador: 

en el metodo create tengo añadido como me gustaria que se hiciera pero a la hora de capturar el params[:tags] el navegador me da un error dice que each no esta definido para "la string de los tags":String y falla en la linea 45 que es el @blog_entry = BlogEntry.new(params[:blog_entry]) la linea anterior era para ver que daba el hash pero en ralidad ya se veia en el navegador y es que el has devuelve una atributo llamado "blog_entry" el cual a su vez es un subhash del has principal que tiene un token para verificar y un commit con la string "create blog entry" o algo similar, problema supongo que al llegarle el :tags por el formulario de blog entries:
community / app / views / blog_entries / _form.html.erb  pues no le gusta al recibirlo @blog_entry = BlogEntry.new(params[:blog_entry]) dado que lo que recibe es :title => "titulo" :content => "contenido" :tags => "tags" y claro el :tags no le sienta bien por eso suela el royo de que no esta definido el metodo each para "tags":String y en eso ando peleandome con ver como puedo manipular el hash para mandar algo o como se haria para poder pillar params[:tags].split y las tags separadas por espacios comprobar si existen si no existen crearlas y luego añadirlas a @blog_entry.tags
Reply all
Reply to author
Forward
0 new messages