Como hacer consultas

Hola que tal, tengo una aplicacion con varias tablas y quiero poner los
nombres de cada tabla en un select para que el usuario seleccione la
tabla a consultar pero no he podido hacerlo.
esta linea me devuelve un array con los nombres de todas las tablas
@tablas=ActiveRecord::Base.connection.tables
pero como le hago para poner cada una como opcion del select_tag he
intentado :

<%=select_tag ‘tabla’, options_from_collection_for_select(@tablas) %>

y en caso de que se pueda como le hago para poder hacer el tabla.find
:all ya que tablas seria un string ya que no es lo mismo “Curso”.find
:all que Curso.find :all

2008/12/15 Er3c Er3c [email protected]:

y en caso de que se pueda como le hago para poder hacer el tabla.find
:all ya que tablas seria un string ya que no es lo mismo “Curso”.find
:all que Curso.find :all

Como bien dices el resultado de .tables es un array de los nombres de
las tablas, por lo que no puedes utilizar
options_from_collection_for_select:

<%= select_tag ‘tabla’ options_for_select(@tablas) %>

Y como bien dices no puedes hacer “Curso”.find :all. Pero tienes que
darte cuenta de que tus tablas se llamarán “cursos” no “Curso”, por lo
que debes utilizar los métodos de Rails classify y constantize:

“cursos”.classify # => “Curso”
“cursos”.classify.constantize # => Curso
“cursos”.classify.constantize.find :all # => tus resultados…

Suerte.

pero de que forma puedo meter un array en un select

2008/12/16 Er3c Er3c [email protected]

pero de que forma puedo meter un array en un select

Consulta la documentación de los helpers de formularios con más
detenimiento. Y, por favor, cuida un poco la redacción de los mensajes.

On Tue, Dec 16, 2008 at 01:50, Manuel González Noriega
[email protected] wrote:

2008/12/16 Er3c Er3c [email protected]

pero de que forma puedo meter un array en un select

Consulta la documentación de los helpers de formularios con más
detenimiento. Y, por favor, cuida un poco la redacción de los mensajes.

Y lee los mensajes que te responden, sobre todo aquellos que te dan la
solución.

2008/12/16 Daniel R. Troitiño [email protected]

Y lee los mensajes que te responden, sobre todo aquellos que te dan la
solución.

Jajajaja, yo pequé de lo mismo y me salté tu respuesta :wink:

Gracias, Daniel.

2008/12/16 Er3c Er3c [email protected]

Por favor, describe exactamente en qué punto tienes algún problema y
cuál es
el problema exactamente (“no me funcionó” no sirve) Además, empieza un
nuevo
hilo con un asunto que refleje tu problema y no uses un mismo hilo a
modo de
“línea abierta”. Muchas gracias :slight_smile:

Manuel González Noriega wrote:

2008/12/16 Daniel R. Troitiño [email protected]
Gracias por su ayuda es exactamente lo que queria hacer muchisimas
gracias.
funciono de maravilla.

Ahora lo que quiero es hacer que me muestre todos los campos de cada
registro lo intento hacer con ciclo recorriendo un array con los nombres
de la tabla seleccionada. pero no puedo hacer propedeuticos.“id” lo que
quiero es que tome la cadena como metodo he intente con
nombredelatabla.method(variable)
pero no funciono. les agradeceria su ayuda.
aqui esta el codigo:
controlador consultas accion resultado:
def resultado
@tbl=params[:tabla]
@[email protected] :all
nombre_tabla="Describe "+ @tbl
@campos=ActiveRecord::Base.connection.select_values(nombre_tabla)
end
y esto en la vista:

Resultados de la consulta


<%[email protected] %>

<%@tablaactual=[]%>
<%i=0%>
<%for campo in @campos%>
<%@tablaactual[i]= campo%>
<%i+=1%>
<%#=resultado.method(campo) %>
<%end%>
<%n=0%>
#este es otro intento
<% for resultado in @resultados %>
<%= m=@tablaactual[n]%>

<%x=resultado.method(m) %>
<%=x.call%>
<%n+=1%>
<%end%>