如何在Rails中将数据从一个模型/控制器发送到另一个

时间:2014-05-09 21:26:23

标签: ruby-on-rails

不确定如何实现这个目标:

  1. 用户在第1页上输入电子邮件
  2. 在第2页上,用户无需再次输入电子邮件,因为它已保留(再次跨控制器/型号)
  3. 使用下面的代码段说明它的另一种说法是:

    1. 用户在注册/新
    2. 中输入电子邮件“test@gmail.com”
    3. 电子邮件发布到注册/创建,所以现在模型注册有一行新的数据“test@gmail.com”
    4. 用户重定向到requests / new
    5. 对于requests / new,我希望用户刚刚注册的同一封电子邮件可以立即访问,即新操作中的@ requestrecord.email =“test@gmail.com”,因此用户不会必须重新输入并发布到requests / create
    6. 注册控制器代码

      def new
          @signup = Signup.new
      end
      
      def create
          @signup = Signup.new(signup_params)
          if @signup.save
              redirect_to new_request_path
          else
              render new_signup_path
          end
      
      end
      

      请求控制器代码

      def new
          @requestrecord = Request.new
      end
      
      def create
          @requestrecord = Request.new(request_params)
      end
      

1 个答案:

答案 0 :(得分:1)

您只需在会话变量中设置用户的电子邮件:

def create
  @signup = Signup.new(signup_params)
  if @signup.save
      session[:user_email] = @signup.email
      redirect_to new_request_path
  else
      render new_signup_path
  end
end

然后您可以根据需要在请求控制器中使用session[:user_email]