def new
@user = User.find(session[:this_user])
@message = Message.new
@people= People.order("is_active DESC, first_name, last_name")
end
Когда действие create не проходит проверку, мне нужно снова установить вышеупомянутые переменные, создавая действие, которое выглядит следующим образом:
def create
@message = Message.new(params[:message])
if @message.save
redirect_to(messages_path, :notice => 'Message was successfully created.')
else
@user = User.find(session[:this_user])
@message = Message.new
@people= People.order("is_active DESC, first_name, last_name")
render :action => "new"
end
конец
Как правильно удалить избыточный код (и высушить его)?
Кроме того, вышеуказанный подход заставляет форму забыть любой ввод, если проверка не пройдена. Есть ли лучший способ сделать это, чтобы он запомнил любую введенную информацию?
Rails 3.07, Ruby 1.9.2