2011-09-24 38 views
1

我有一個表單有一個輸入字段 - 一個textarea - 當用戶提交表單時,我想將textarea的值保存到會話中。我如何在Rails中做到這一點?如何將textarea值保存到Rails會話中?

我正在使用設計,我發送用戶提交表單後的頁面是我的設計註冊頁面。

所以我想我需要在註冊控制器動作是這樣的:

session[:text_entered] = params() 

...但設計不給我一個註冊控制器。我需要製作一個嗎?

當表單被提交時,我堅持使用超長URL嗎?這應該是POST還是GET?如何將textarea的值傳遞給註冊頁面而不將其作爲URL參數發送?

對不起,我是一名新手。謝謝你的幫助!

+0

textarea頁面的控制器是什麼樣的? –

回答

1

所以,你有一個textarea所在頁面的控制器,我們稱之爲「SomethingsController」。並且該頁面上的表單提交給的控制器是,我收集RegistrationsController。而不是處理在RegistrationsController中提交該表單,我要做的就是讓SomethingsController處理它。

當你POST形式SomethingsController(是的,你應該張貼),它會觸發create行動,在那裏你會從params獲得的價值(這是一個Hash - 你[]訪問它的值)並把它放在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 
+0

我不得不刪除「&& text.present?」部分,但完全奏效,你解釋得很好。謝謝! – throwaway