【问题标题】:Require form submit before viewing page - rails在查看页面之前要求提交表单 - rails
【发布时间】:2015-10-30 16:33:32
【问题描述】:

我有一个表单,我想要求人们先提交,然后才能查看其他页面。但是,这不需要登录或用户身份验证。有没有办法解决?本质上,我想阻止用户使用 url 跳转到内容。

我正在考虑在 f.submit 操作中添加一个 Jquery 模式?任何想法或建议将不胜感激。

【问题讨论】:

  • 您可以使用会话变量来确定用户是否访问了第一页,如果没有,则从另一个 url 重定向他们。其实你甚至不需要重定向,只需加载你希望他们首先看到的页面内容。
  • 我需要让人们输入他们的姓名和电子邮件,然后他们才能查看由用户控制的页面。客户要求他们不必注册帐户,但有权查看页面,并要求他们记录姓名和电子邮件。

标签: jquery ruby-on-rails forms


【解决方案1】:

当用户提交表单时,您可以将页面作为 http 响应发送回 http POST(不要让您的服务器响应 http GET 来提供该页面)。这样,您首先收集表单的信息,然后通过页面发送响应。

在您的config/routes.rb 中创建一个 POST 路由:

post 'form', to: 'form#create'

在您的控制器中,保存您感兴趣的表单数据并使用页面进行响应:

def create
  #save the form data in a Form model?
  @form = Form.new form_params
  if @form.save
    render :page
  else
    redirect_to :new
  end
end

您需要调整上述代码以满足您的需求。

【讨论】:

  • 这听起来可行,你能指出我从哪里开始的正确方向吗?
猜你喜欢
  • 1970-01-01
  • 2011-03-17
  • 2020-06-22
  • 2015-08-04
  • 2012-04-12
  • 1970-01-01
  • 2012-07-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多