Hola,
Tengo un form_tag con un número variable de text_areas:
<%@n_q.times do |n|%>
<%= text_area ‘mtask’ + n.to_s, ‘text’, :rows => 3, :cols => 60%>
<%end%>
y en el controlador querrÃa hacer algo como:
@n_q.times{|n| @mtask???n=Mtask.new(params[‘mtask’ + n.to_s]) }
que fuera equivalente a hacer:
@mtask0=Mtask.new(params[‘mtask0’])
@mtask1=Mtask.new(params[‘mtask1’])
@mtask2=Mtask.new(params[‘mtask2’])
@mtask3=Mtask.new(params[‘mtask3’])
@mtask4=Mtask.new(params[‘mtask4’])
de modo que no pierda los valores al procesar los datos con algunos de
los submit_tag que utlizo. ¿Cómo podrÃa hacerlo? Graciass.
On 5/8/07, Héctor [email protected] wrote:
que fuera equivalente a hacer:
@mtask0=Mtask.new(params[‘mtask0’])
@mtask1=Mtask.new(params[‘mtask1’])
@mtask2=Mtask.new(params[‘mtask2’])
@mtask3=Mtask.new(params[‘mtask3’])
@mtask4=Mtask.new(params[‘mtask4’])
de modo que no pierda los valores al procesar los datos con algunos de
los submit_tag que utlizo. ¿Cómo podría hacerlo? Graciass.
Es rebuscado, pero
@n_q.times { |n| instance_variable_set(“@mtask#{n}”.to_sym,
Mtask.new(params[“mtask#{n}”])) }
debería funcionar como pides.
De cualquier forma, a pesar de que eso funcione, es muy “raro”, yo
buscaría otra forma de hacerlo, quizá un array @mtasks o similar.
Gracias de nuevo Daniel! Funciona perfectamente. Al final voy a tener
que invitarte a algo
Supongo que se serÃa mejor con el array, pero no se cómo hacer que el
text_area coja el mtask[n], asà que utilizo:
<%= text_area ‘mtask’ + n.to_s, ‘options’, :rows => 1, :cols => 60%>
mm creo que no, a no ser que sepas pq da el siguiente error
`@mtask[0]’ is not allowed as an instance variable name
Ya habÃa probado con
<%= text_area “mtask[” + n.to_s + “]”, ‘options’, :rows => 1, :cols =>
60 %>
pero pasaba lo mismo (pq es lo mismo, ¿no? :). ¿Alguna idea de pq no va?
On 5/9/07, Héctor [email protected] wrote:
Gracias de nuevo Daniel! Funciona perfectamente. Al final voy a tener
que invitarte a algo
Supongo que se sería mejor con el array, pero no se cómo hacer que el
text_area coja el mtask[n], así que utilizo:
<%= text_area ‘mtask’ + n.to_s, ‘options’, :rows => 1, :cols => 60%>
Si me invitás a algo a mí también, te digo que:
<%= text_area “mtask[#{n}]”, ‘options’, :rows => 1, :cols => 60 %>
Luego desde tu controlador,
params[:mtask].each do |text|
aquí text tiene el contenido de cada text area.
end
Sirve?
Héctor wrote:
mm creo que no, a no ser que sepas pq da el siguiente error
`@mtask[0]’ is not allowed as an instance variable name
Prueba con los siguiente :
#En la vista :
<%= start_form_tag :action => ‘create’ %>
<%for result in ["","",""]%>
<%= text_area_tag “result[]”, ‘’, :rows => 3, :cols => 60%>
<%end%>
<%= submit_tag “Create” %>
<%= end_form_tag %>
En el controlador :
def create
c = “”
params[:result].each do |v|
c += v
end
render_text c
end
Saludos.
Jaime Mora R.
Ahora sà va perfectamente. Gracias a todos!