Rails controller - перенаправление на сайт после создания? - PullRequest
0 голосов
/ 16 сентября 2010

Я работаю над базовым приложением, которое имеет общедоступную форму (для запросов), которую каждый может заполнить и отправить.Затем результаты сохраняются для компании, чтобы делать то, что они хотят.

Я убедился, что если пользователь не вошел в систему, он может получить доступ только к странице создания, но после отправки формы, как и ожидалось, они попадают на страницу входа, потому что он пытается показать им страницу показа.

Мой текущий контроллер выглядит следующим образом:

# POST /enquiries
  # POST /enquiries.xml
  def create
    @enquiry = Enquiry.new(params[:enquiry])

    respond_to do |format|
      if @enquiry.save
        format.html { redirect_to(@enquiry, :notice => 'Enquiry was successfully created.') }
        format.xml  { render :xml => @enquiry, :status => :created, :location => @enquiry }
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @enquiry.errors, :status => :unprocessable_entity }
      end
    end
  end

Я бы подумал, что эту строку нужно изменить:

format.html { redirect_to(@enquiry, :notice => 'Enquiry was successfully created.') }

Можно ли сделать:

format.html { redirect_to(http://www.google.com) }

1 Ответ

2 голосов
/ 16 сентября 2010

Да, вы можете, конечно, redirect_to("http://any.url.com/you/want") с вашего контроллера или делать все, что захотите, если создание прошло успешно.Перенаправление на действие show является обычным явлением.

Это действительно то, что вы хотите сделать?Если после отправки формы вы перенаправите своего пользователя на сторонний веб-сайт, вы не сможете дать ему никакого отзыва о том, что только что произошло.Пользователь может попытаться снова отправить запрос, или, что еще хуже, он может подумать, что что-то пошло не так, и просто забыть об этом, потерять интерес и т. Д.страницы и перенаправления туда анонимных пользователей.

...