2012-03-24 44 views
0

比方说,允许用户查看模型的创建页面之前,他们需要接受一些条款。工作流程是这样的:Rails在创建之前接受条款

用户点击“创建模式” - >带到条款页面,在移动之前必须接受 - >模型创建页面

如果用户复制的URL创建页面,他们应该被重定向到术语页面。

这是怎么回事?我正在考虑以某种方式使用session变量......但我想不出一个足够聪明的想法。有什么建议么?

回答

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。如果不是,请重定向到条款页面。

+0

这正是我所期待的。 – vinceh 2012-03-24 21:42:19

1

您可以将接受的术语添加到模型本身,那么如果有人进入错误的地方,您不需要额外页面的构造和重定向。相反,用户只能在接受条款时提交创建表单。

您可以添加以下模型:

class Model < ActiveRecord::Base 
    validates :terms_of_service, :acceptance => true 
end 

然后确保你在新的%{}模型对这篇复选框。

另见:http://guides.rubyonrails.org/active_record_validations_callbacks.html#acceptanceAccept terms of use rails