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 :
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
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:
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:
<%@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]%>