Cargar el select de HTML desde la base

7 views
Skip to first unread message

Eduardo Trápani

unread,
Aug 15, 2010, 9:58:50 PM8/15/10
to ru...@googlegroups.com
Hola,

Quiero hacer un proceso de importación a la base desde una carpeta que
tiene archivos. Para seleccionar la carpeta quiero elegir un objeto del
modelo:

Location (id, path)

que tiene como campos el camino en el filesystem. También tengo que
elegir otro valor más de otro objeto, que se llama Language (two_letter,
name).

Entonces voy a la vista del controlador de import y pongo:

<% form_tag('/admin/import') do -%>

<%=
@locations = Location.find(:all,:include => {:version => :application})
select_tag(:id,
options_from_collection_for_select(@locations, :id, :path))
%>
<%=
@languages = Language.find(:all)
select_tag(:id,
options_from_collection_for_select(@languages, :two_letter, :name))
%>

<% end -%>

*Tiene* que haber una manera más fácil, ¿no?

Gracias, Eduardo.

PD: En realidad el Location belongs_to Version y este belongs_to
Application y tendría que mostrar algo en el select como
{APPLICATION.NAME}{VERSION.NAME}{PATH}" Pero si hay el select hay que
armarlo siempre así, a a pedal, bueno, ese detalle no calienta mucho.

Diego Algorta

unread,
Aug 23, 2010, 12:02:32 AM8/23/10
to ru...@googlegroups.com
Hola Eduardo... tarde pero por ahí te sirve igual:

class Location < ActiveRecord::Base
belongs_to :version

named_scope :with_app_path, :include => {:version => :application}

def app_path
"#{version.app_path}/#{path}"
end
end

class Version < ActiveRecord::Base
belongs_to :application

def app_path
"#{application.name}/#{name}"
end
end

<% form_tag('/admin/import') do -%>

<%= collection_select(:data, :location_id, Location.with_app_path.all,
:id, :app_path, {:prompt => true}) %>
<%= collection_select(:data, :language_two_letter, Language.all,
:two_letter, :name, {:prompt => true}) %>
<% end -%>

Y en el controller accedés a los datos con params[:data][:location_id]
y params[:data][:language_two_letter].

No lo probé, pero en base a la info que ponés en el mail, creo que
esto puede ser mejor. No sé si es más fácil, pero creo que es más
"limpia".

Suerte!
Diego

2010/8/15 Eduardo Trápani <etra...@gmail.com>:

> --
> Grupo de Usuarios Ruby del Uruguay - http://groups.google.com/group/ruguy
> Anular suscripción - ruguy-un...@googlegroups.com
>

Reply all
Reply to author
Forward
0 new messages