2015-10-30 40 views
1

我有一个表单,我希望要求用户在查看其他页面之前提交表单。但是,这不应该要求登录或用户身份验证。有没有办法解决?本质上,我想阻止用户使用url跳到内容。在查看页面之前需要提交表格 - rails

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

+0

您可以使用会话变量来确定用户是否访问过第一个页面,如果他们没有访问过第一个页面并将它们从其他url重定向。实际上,你甚至不需要重定向,只需加载你希望他们首先看到的页面内容即可。 – sunny

+0

我需要让人们输入他们的姓名和电子邮件,才能查看用户控制的页面。客户要求他们不必注册一个账户,但有权查看该页面,并要求他们记录他们的姓名和电子邮件。 – jpdvi

回答

0

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

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 

你需要调整上述代码以适应您的需求。

+0

这听起来像是会起作用的,你能否指点我在​​哪里寻找开始的正确方向? – jpdvi