如何将textarea值保存到Rails会话?

时间:2011-09-24 05:33:08

标签: ruby-on-rails devise

我有一个带有一个输入字段的表单 - 一个textarea - 当用户提交表单时,我想将textarea的值保存到会话中。我如何在Rails中做到这一点?

我正在使用Devise,我提交表单后我发送给用户的页面是我的Devise注册页面。

所以我想在注册控制器操作中我需要这样的东西:

session[:text_entered] = params()

...但是Devise没有给我一个注册控制器。我需要制作一个吗?

表单提交后我是否坚持使用超长URL?这应该是POST还是GET?如何将textarea值传递给注册页面而不将其作为URL参数发送?

抱歉,我是新手。谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

所以,你有一个textarea所在页面的控制器,我们称之为“SomethingsController”。并且该页面上提交的控制器是我收集的RegistrationsController。而不是在RegistrationsController中处理该表单的提交,我会做的是让SomethingsController处理它。

当你向SomethingsController POST表单(是的,你应该发布POST)时,它将触发create动作,你将从params获得值(这是哈希 - 您使用[]访问其值并将其放入session。完成后,您可以将用户重定向到注册页面。像这样:

SomethingsController < ActionController::Base
  def create
    if text = params[:text_area_name] && text.present?
      session[:text_entered] = text
      redirect_to new_user_registration_path
    else
      flash[:error] = "You didn't enter any text!"
      render :action => :new
    end
  end
end