我已经建立了一个酒类品牌的营销网站,我需要检查用户的年龄通过添加一个登录页面,然后才能进入主网站。在我现有的rails应用程序中处理表单、提交和验证功能的最佳方法是什么?
我应该只创建一个原始的html表单并使用javascript吗?
发布于 2015-03-30 05:26:32
向ApplicationController
添加一个用于检查验证是否已经发生的before_action
(即,如果它存储在cookie中,则检查cookie,依此类推):
class ApplicationController
before_action :check_age
def check_age
# check if the user has already confirmed their age.
end
...
end
如果没有找到,则将用户重定向到一个控制器操作,该操作使用年龄检查表单(即AgeVerificationController#new
)呈现页面
在提交时,设置cookie (或您正在执行的存储此数据的任何操作),并将用户重定向回他们打算访问的页面(如果他们说自己未成年,则将其踢出站点!)
您需要在用于处理表单的呈现和提交的控制器上包含一个skip_before_action
,即
class AgeVerificationController < ApplicationController
skip_before_action :check_age
...
end`
如果您开始使用before_action
来做许多复杂的事情,那么使用它有时有点反模式,但在这种情况下,它是一种相当简单的方式来完成您想要做的事情。
发布于 2015-03-30 05:31:45
即使你使用javascript,你将需要存储的客人的年龄,以帮助他为更好的用户下一次experience.So我会建议你保存它与ip地址,以识别客人,如果你没有存储一个唯一的参数登录(如电子邮件,手机号码等)。一旦准备好要存储此details...you的表,就有许多选项,例如:-
$(".myModal").show();
或呈现您自己的视图来获取用户详细信息,例如:$('#myModal').find('.modal-body').html("<%= escape_javascript(render(:partial => 'users/get_details')) %>"); $('#myModal').modal();
https://stackoverflow.com/questions/29333936
复制相似问题