Insertar multiples registros en la db


#1

Hola a todos, quizás esta consulta sea muy básica pero es que soy novatillo.

Bien, estoy haciendo típico formulario para crear por ejemplo una
noticia, pero en vez de ponerle una categoría quiero que se creen
varias.

Este es mi “def create”

def create
@link = Link.new(params[:link])
@link.save
@tag = Tag.new(params[:tag])
@tags = @tag.split(’,’) # Divido los tags y los meto en un array
¿está bien?
@tags.each { |tag| @tag.save } # ¿esto seria un foreach ?

#supuestamente lo estoy guardando en la tabla tags
#tendria que ponerle el id del post pero no se sacarlo.

 flash[:notice] = 'Link was successfully created.'
 redirect_to :action => 'list'

end

Si me ayudais con esto creo que ya podré hacer muchas mas cosas.

Gracias por adelantado.


#2

def create
@link = Link.new(params[:link])
@link.save

@tag = Tag.new(params[:tag])
@tags = @tag.split(',')  # Divido los tags y los meto en un array

¿está bien?
@tags.each { |tag| @tag.save } # ¿esto seria un foreach ?


#3

El Sábado, 13 de Enero de 2007 16:30, Pedro V.
escribió:> @tag = Tag.new(t)

@tag.link = @link
@tag.save
end

Puedes hacerlo así también:

params[:tag].split(’,’).each do |t|
@link.tags.create(t)
end

(Suponiendo que el modelo Link tenga un has_many :tags).

Saludos.


Imobach González Sosa
imobachgs en banot punto net
osoh en jabberes punto org


#4

Se me escapo el send :frowning:

Voy a adivinar un poco …

def create
@link = Link.new(params[:link])
@link.save

aca viene el tema

voy a adivinar un poco… lo natural seria algo asi

(params[:tag]).split(’,’).each do |t|
@tag = Tag.new(t)
@tag.link = @link
@tag.save
end

No se si es esa tu idea pero te creara un registro tag por cada tag que
recibas
Le agregue una asociacion a link como si fuera un belongs_to

Espero te haya servido

P


#5

me corrijo al mismo.
lo que dije no tiene sentido ya que no me di cuenta que Tag tiene su
propia clase.
lo que si podría hacer sería esto:

@link = Link.new(params[:link])
params[:tag].split(’,’).each {|t| @link.tags << Tag.new(t)}
@link.save

saludos

On Sun, 2007-01-14 at 15:07 +0100, Borja Martín wrote:

Se me escapo el send :frowning:
@tag.link = @link

Saludos.


Imobach González Sosa
imobachgs en banot punto net
osoh en jabberes punto org


Ror-es mailing list
removed_email_address@domain.invalid
http://lists.simplelogica.net/mailman/listinfo/ror-es

/**


#6

al tener la relación has_many en Link, también podría hacer esto:

@link = Link.new(params[:link])
@link.tags = params[:tag].split(’,’)
@link.save

saludos

On Sun, 2007-01-14 at 11:12 +0000, Imobach González Sosa wrote:

(params[:tag]).split(’,’).each do |t|

removed_email_address@domain.invalid
http://lists.simplelogica.net/mailman/listinfo/ror-es

/**