Ruby on Rails - 直接将表单数据提交给会话变量

时间:2012-02-13 18:19:31

标签: ruby-on-rails ruby-on-rails-3 session

我花了好几个小时试图找到一个资源来解释将表单数据直接提交给会话变量的过程,但我找不到任何运气了!

基本上我不想在用户以这种特定形式提交时将数据存储在数据库中,我只是希望在用户提交表单时将其分配给session[:member_pin]变量,这样我就可以了检查他们输入的引脚是否与成员数据库记录上的引脚匹配。

如果您需要了解我想要做的事情,请告诉我,非常感谢您的帮助!

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

在您的控制器方法中可能是这样的:

session[:member_pin] = params[:member_pin_input_name]