ruby-on-rails - Ruby on Rails - 表单提交上的 session 变量

标签 ruby-on-rails ruby session

我有一个应用程序,它要求访问者填写一个表单,然后它会重定向到第二个页面。客户不想要求访问者注册才能查看此页面,只需要填写表格即可。

我尝试这样做的方法是在页面被访问时创建一个 session 变量,然后在下一页可访问之前检查该变量是否存在。是否可以延迟 session 变量的创建,直到提交操作被处理?如果是这样,那会是什么样子?

还有,谁能想到更好的方法来做到这一点?抱歉,这可能是个愚蠢的问题。

最佳答案

session cookie 将在第一次提交后声明。

我假设第一次提交将加载一个 controller#action,然后您将在其中重定向 到下一页。只需在那里设置 session :

#app/views/forms/1.html.erb
<%= form_tag form_1_submit_path do %>
  ...
<% end %>

这将允许您执行以下操作:

#app/controllers/forms_controller.rb
class FormsController < ApplicationController
   def form_1_submit
      session[:value] = params[:value]
      redirect_to form_2
   end
end

因此,您将session[:value] 全部设置好并准备好在下一个表单中使用:

#app/views/forms/2.html.erb
<%= form_tag .... do %>
   <%= text_field_tag :test, value: session[:value] %>
<% end %>

关于ruby-on-rails - Ruby on Rails - 表单提交上的 session 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33489462/

相关文章:

ruby-on-rails - Rails 4 - 如何匹配命名空间中的路由

node.js - sailsjs 摆脱 session 和套接字池

php - 如何从 Magento 外部访问 Magento 用户的 session ?

ruby - ruby 是如何做 + 运算符的?

html - 如何向所有HTML页面添加音频

ruby-on-rails - Rails html.erb 文件类型,<% %> 和 <%= %> 的区别

ruby-on-rails - 简单的Nokogiri不工作: undefined method call for "Nokogiri"

ruby-on-rails - Nginx + 乘客 +rails : Getting 405 error on post request

ruby - 鞋子布局

ruby - 为什么 delete 返回的是被删除的元素而不是新数组?