Как сохранить значение textarea в сеансе Rails? - PullRequest
1 голос
/ 24 сентября 2011

У меня есть форма с одним полем ввода - текстовое поле - и когда пользователь отправляет форму, я хочу сохранить значение текстового поля в сеансе. Как мне это сделать, в Rails?

Я использую Devise, и страница, на которую я отправляю пользователя после отправки формы, является моей страницей регистрации в Devise.

Итак, я думаю, мне нужно что-то подобное в действии контроллера регистрации:

session[:text_entered] = params()

... но Devise не дает мне контроллер регистрации. Мне нужно сделать один?

Когда я отправляю форму, я застрял с очень длинным URL? Должно ли это быть POST или GET? Как передать значение textarea на страницу регистрации, не отправляя его в качестве параметра URL?

Извините, я новичок. Спасибо за любую помощь!

1 Ответ

1 голос
/ 24 сентября 2011

Итак, у вас есть контроллер для страницы, на которой находится текстовая область, давайте назовем ее «SomethingsController».И контроллер, форма которого представлена ​​на этой странице, является, я так понимаю, RegistrationsController.Вместо того, чтобы обрабатывать отправку этой формы в RegistrationsController, я бы позволил SomethingsController обработать ее.

Когда вы POST заполняете форму SomethingsController (и да, вы должны POST), она запустит create action, и там вы получите значение из 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...