Forum: Rails-ES insertar multiples registros en la db

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
7841fbf022cfe78bff34942b50c483e1?d=identicon&s=25 Ceritium (Guest)
on 2007-01-19 16:30
(Received via mailing list)
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.
48ae1944e6a82dffa18694663e72c931?d=identicon&s=25 Pedro Visintin (peterpunk)
on 2007-01-19 16:31
(Received via mailing list)
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 ?
A6344ef7ef1e33e8efb34d99e6124490?d=identicon&s=25 Imobach González Sosa (Guest)
on 2007-09-25 22:38
(Received via mailing list)
El Sábado, 13 de Enero de 2007 16:30, Pedro Visintin
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
48ae1944e6a82dffa18694663e72c931?d=identicon&s=25 Pedro Visintin (peterpunk)
on 2007-09-25 22:44
(Received via mailing list)
Se me escapo el send :-(

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
90ea347c45cdfbc1c5767dd6304d9c10?d=identicon&s=25 Borja Martín (Guest)
on 2007-09-25 22:47
(Received via mailing list)
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 :-(
> > >   @tag.link = @link
> >
> > Saludos.
> >
> > --
> > Imobach González Sosa
> > imobachgs en banot punto net
> > osoh en jabberes punto org
> > _______________________________________________
> > Ror-es mailing list
> > Ror-es@lists.simplelogica.net
> > http://lists.simplelogica.net/mailman/listinfo/ror-es
--
/**
 * dagi3d v4 | http://dagi3d.net
 */
90ea347c45cdfbc1c5767dd6304d9c10?d=identicon&s=25 Borja Martín (Guest)
on 2007-09-25 22:52
(Received via mailing list)
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|
>
> Ror-es@lists.simplelogica.net
> http://lists.simplelogica.net/mailman/listinfo/ror-es
--
/**
 * dagi3d v4 | http://dagi3d.net
 */
This topic is locked and can not be replied to.