2011-09-24 12 views
1

私は1つの入力フィールド(テキストエリア)を持つフォームを持っています。ユーザーがフォームを送信すると、セッションにテキストエリアの値を保存します。 Railsでどうしたらいいですか?どのようにしてRailsセッションにテキストエリアの値を保存しますか?

私はDeviseを使用しています。フォームを送信した後にユーザーに送信するページは、私のDevise登録ページです。

だから私は、私は登録のコントローラのアクションでは、このような何か必要な想像:

session[:text_entered] = params() 

を...しかし、工夫は私に登録コントローラを与えるものではありません。私はそれを作る必要がありますか?

フォームが送信されると、スーパーロングURLが表示されますか?これはPOSTかGETであるべきですか? textareaの値をURLパラメータとして送信せずに登録ページに渡すにはどうすればよいですか?

申し訳ありません私は初心者です。助けてくれてありがとう!

+0

テキストエリアのページのコントローラはどのように見えますか? –

答えて

1

したがって、テキストエリアがあるページのコントローラがあります。「SomethingsController」と呼ぶことにします。そしてそのページ上のフォームが送信するコントローラは、私がRegistrationsControllerを集めたものです。 RegistrationsControllerでそのフォームの提出を処理する代わりに、私はSomethingsControllerがそれを処理させるようにします。

ときSomethingsControllerにあなたが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 
+0

私は "&& text.present?"を削除しなければなりませんでした。それは完全にうまくいって、あなたはそれをとてもうまく説明しました。ありがとうございました! – throwaway

関連する問題