比方说,允许用户查看模型的创建页面之前,他们需要接受一些条款。工作流程是这样的:Rails在创建之前接受条款
用户点击“创建模式” - >带到条款页面,在移动之前必须接受 - >模型创建页面
如果用户复制的URL创建页面,他们应该被重定向到术语页面。
这是怎么回事?我正在考虑以某种方式使用session
变量......但我想不出一个足够聪明的想法。有什么建议么?
比方说,允许用户查看模型的创建页面之前,他们需要接受一些条款。工作流程是这样的:Rails在创建之前接受条款
用户点击“创建模式” - >带到条款页面,在移动之前必须接受 - >模型创建页面
如果用户复制的URL创建页面,他们应该被重定向到术语页面。
这是怎么回事?我正在考虑以某种方式使用session
变量......但我想不出一个足够聪明的想法。有什么建议么?
你可以有以下途径:
get 'terms' => 'MODEL#terms'
get 'new' => 'MODEL#terms'
post 'new' => 'MODEL#new'
的 “创模” 应该发送GET请求/项。接受条款应POST到/新。如果用户在网址中粘贴了/新的内容,他会转而使用条款。
或者(或另外),您可以将/ terms POST变量:terms_accepted => true
添加到MODEL创建页面,并在该页面上检查if :terms_accepted == true
。如果不是,请重定向到条款页面。
您可以将接受的术语添加到模型本身,那么如果有人进入错误的地方,您不需要额外页面的构造和重定向。相反,用户只能在接受条款时提交创建表单。
您可以添加以下模型:
class Model < ActiveRecord::Base
validates :terms_of_service, :acceptance => true
end
然后确保你在新的%{}模型对这篇复选框。
另见:http://guides.rubyonrails.org/active_record_validations_callbacks.html#acceptance和Accept terms of use rails
这正是我所期待的。 – vinceh 2012-03-24 21:42:19