Duda con el paso de variables desde un form a un controlador


#1

Hola, a todos.

Estoy probando de recuperar un valor de una SELECT en una view de Rails.
El valor seleccionado lo quiero poder recuperar en el controlador con
session[:filteraccountmonth].

He provado el siguiente codigo y no funciona.

 <select name="session[filteraccountmonth]">
  <% for months in ['GENER','FEBRER','MARÇ','ABRIL','MAIG','JUNY']%>
    <option value=<%= months %>><%= months %></option>
  <% end%>
</select>

Me podeis ayudar?

Rafa.


#2

Hola rafa, desde mi más humilde opinión, te recomiendo que te mires
algún
tutorial básico antes de meterte en faena. lo que tu quieres hacer creo
que
se hace con la ayuda de la variable [params] que es una variable que
comparten la vista y el controlador. intentare ponerte un ejemplo:

pon que tengo una vista con un formulario como este:

#new.html.erb
<% form_for(:comment, @comment, :url => user_post_comment_path(@user,
@post,
@comment)) do |f| %>

Body
<%= f.text_area :body %>

nombre
<%= f.input :name %>

<%= f.submit "Create" %>

<% end %>

Como ves lo que tengo es un form que solo tiene un text-area y un input.

Bien, estos valores los recupero en el controlador de la siguiente
forma:

def create
@comment = @post.comments.new(params[:comment])

respond_to do |format|
  if @comment.save
    flash[:notice] = 'Comment was successfully created.'
    format.html { redirect_to(user_post_comment_url(@user, @post,

@comment)) }
format.xml { render :xml => @comment, :status => :created,
:location => @comment }
else
format.html { render :action => “new” }
format.xml { render :xml => @comment.errors, :status =>
:unprocessable_entity }
end
end
end

Como ves estos valores han pasado de la variable params a la variable
@comment.

Creo que te lo he explicado bien.

Un saludo

El 13 de marzo de 2009 14:29, Rafa C.
removed_email_address@domain.invalidescribió:


#3
  • En la vista:

    meses = [‘Enero’, ‘Febrero’, ‘Marzo’, ‘Abril’, 'Mayo, ‘Junio’]
    <%= select ‘fecha’, ‘mes’, meses, :promt => ‘escoje un mes’ %>

  • En el controlador:

    session[:filteraccountmonth] = params[:fecha][:mes]

Salu2,

Iván

Real_men_dont_need_spacebars