2012-02-13 47 views
2

我花了数小时试图找到解释将表单数据直接提交给会话变量的过程的资源,但我没有找到任何运气!Ruby on Rails - 直接向会话变量提交表单数据

本质上,我不想在用户提交这个特定的表单时将数据存储在数据库中,我只是希望它在用户提交表单时分配给session[:member_pin]变量,所以我可以检查他们输入的PIN与成员数据库记录上的PIN匹配。

请让我知道,如果你需要更多的澄清我想要做的,并非常感谢你的帮助!

+0

为什么你需要存储任何东西在所有的会议?只是验证引脚当它处于... – coreyward 2012-02-13 18:24:13

+0

哦!我没你甚至不知道你可以这样做......这个动作会是什么样子? – briankulp 2012-02-13 18:41:19

+1

'session [:verified] = User.find_by_pin(params [:pin])present?' – coreyward 2012-02-13 18:43:24

回答

4

您不必到每一个数据表单提交的时间保存到数据库中。在你的控制器的操作中,获取你想要的参数并将它们存储在会话中。例如,

def some_action 
    session[:user_id] = User.find_by_pin(params[:pin]) if params[:pin] 
end 

然后在您的应用程序控制器中,创建一个像这样的帮助方法。那么你应该能够在你的视图中访问“current_user”方法。 (这将是零,如果你还没有得到与引脚验证的任何用户。

def current_user 
    User.find(session[:user_id]) if session[:user_id].present? 
end 
+0

我的'form_for'将如何设置? – briankulp 2012-02-14 08:03:51

+0

刚刚更新了答案,请再次检查,表单只需要在文本框中提交“pin” ESS。 – 2012-02-14 11:56:57

+0

非常感谢! – briankulp 2012-02-15 01:11:32

0

也许这样的事情在你的控制器方法:

session[:member_pin] = params[:member_pin_input_name]