2011-04-07 10 views
13

Estoy usando Sinatra con Ruby 1.8.7. Soy nuevo en el desarrollo web, por lo que no entiendo totalmente get y post, pero tengo algunas cosas en funcionamiento. Lo que necesito saber a continuación es cómo interrogar a params en post para ciertos atributos. En mi archivo principal, tengo este código:¿Cómo obtengo atributos de parámetros en la publicación?

get "/plan_design" do 
    erb :plan_design 
end 

post "/plan_design" do 
    # do stuff with params 
end 

en plan_design.erb, que tengo:

<% if (hash[paramTitle].kind_of?(String)) %> 
    <div> <input class="planDesignAsset" name="<%= paramTitle %>" value="<%= hash[paramTitle] %>" ></input> </div> 
<% else %> 
    <div> <input class="planDesignAssetNum" name="<%= paramTitle %>" value="<%= hash[paramTitle] %>" ></input> </div> 
<% end %> 

Como se puede ver que estoy usando una clase diferente para los no-strings. En post, necesito preguntar params[some_key], ¿qué clase de clase eres? Entonces puedo tratar cada parámetro en consecuencia. ¿Esto tiene sentido?

Respuesta

32

En Sinatra, utiliza params para acceder a los datos del formulario. Usted debe poner los valores que necesita en una variable de instancia, que se puede acceder desde su punto de vista:

post "/plan_design" do 
    @title = params[:title] 
    erb :plan_design 
end 

<input name="<%= @title %>" /> 

No estoy seguro de si esto responde a su pregunta, pero espero que ayude.

0

con la respuesta Todd, es posible que desee ver todos los parametros en una instancia es decir var

@params = params 

& continuación, en la vista

que puede hacer

<%= @params[:title] %> 
Cuestiones relacionadas