假设在允许用户查看模型的创建页面之前,他们需要接受一些术语。工作流程如下:
用户点击“创建模型” - >带到一个术语页面,必须在继续之前接受 - >模型创建页面
如果用户将网址复制到创建页面,则应将其重定向到条款页面。
最好的解决方法是什么?我想以某种方式使用session
变量......但我想不出一个聪明的想法。有什么建议吗?
答案 0 :(得分:1)
您可以将条款的接受添加到模型本身,然后您不需要具有额外页面的构造,并且如果有人进入错误的位置则需要重定向。相反,用户只有在接受条款时才能提交表单。
您可以将以下内容添加到模型中:
class Model < ActiveRecord::Base
validates :terms_of_service, :acceptance => true
end
然后确保在新的%{model}表单中设置了此复选框。
另请参阅:http://guides.rubyonrails.org/active_record_validations_callbacks.html#acceptance和Accept terms of use rails
答案 1 :(得分:1)
您可以拥有以下路线:
get 'terms' => 'MODEL#terms'
get 'new' => 'MODEL#terms'
post 'new' => 'MODEL#new'
“创建模型”应该发送/条款的GET请求。接受条款应POST到/新。如果用户在网址中粘贴了/新内容,则会将其定向到条款。
或者(或另外),您可以将/ terms POST变量:terms_accepted => true
到MODEL创建页面,然后在该页面上,检查if :terms_accepted == true
。如果没有,请重定向到条款页面。