Sinatra - 如何在页面之间最好地移动变量/参数

时间:2011-12-23 17:03:38

标签: ruby sinatra

我有一个注册页面,其中包含通常的电子邮件,名称,密码..在服务器提交的路线/页面中验证。如果它失败然后我重定向回来但我想在寄存器页面中填充值..我可以将寄存器表单参数放在会话中但它将保留在那里...是否有页面内存(比会话更小的范围) )就像会话只是为了下一页然后消失/这是实现它的最佳方式。

由于

2 个答案:

答案 0 :(得分:1)

为什么不直接从POST路线渲染注册页面,如下所示:

post '/register' do
  @registration_data = params[:stuff] # store all your registration data
  if info_validates  # everything validates
    redirect './user_home'
  else  # something fails validation
    haml :register  # or erb or whatever your template engine is
  end
end

然后在您看来,如果它存在,请填写@registration_data

此外,您可以使用session.clear清除会话数据。

答案 1 :(得分:0)

Ajax验证会更容易。您只需在表单提交按钮上注册一个onclick事件,该按钮会调用返回带有错误信息的json状态代码的页面或200。如果是200,那就提交。