Rails Controller Def Создать Перенаправление на URL при сохранении

def create
  @purchase = Purchase.new(params[:purchase])

  if session[:purchase_id] != @purchase.save
    redirect_to(@purchase, :notice => "Thank you. You good lookin person you.")
  end
end

Я пытаюсь либо

A - Перенаправление на URL или другой путь контроллеров, или

B - обновить форму, которую они заказали (new_purchases_path), и прошить: заметить пользователя, что его покупка прошла успешно. Когда я пытаюсь добавить URL (это будет страница с благодарностью), я получаю синтаксические ошибки. Этот код перенаправляет пользователя в список индексов (который для них недоступен)

Если я достану def create, он по умолчанию мигает уведомление и показывает им заполненную форму. Я использую simple_form, и я не уверен, как переопределить эти значения по умолчанию. Любые предложения по крайней мере, перенаправления на URL?

2 ответа

Решение

Примеры:

A - Перенаправление на URL или другой путь контроллеров.

  redirect_to :action => "show", :id => 5
  redirect_to "http://www.rubyonrails.org"
  redirect_to  new_purchases_path
  redirect_to  purchases_url
  redirect_to :back

B - обновить форму, из которой они заказали (new_purchases_path)

  render :action => "new"

Редактировать:

Вот общий пример с флеш-сообщениями:

if @foo.save
  redirect_to foos_path, :notice => "Foo saved"
else
  flash[:notice] = "Some errors occured"
  render :action => "new"
end

Вот пример метода создания, который я сделал сегодня

def create
 @book = Book.new(params[:book])
 if @book.save
  redirect_to searchbook_path, notice: 'Book was successfully saved'
 else
render :action => 'results'
end

конец

Так что в вашем случае вы можете попробовать это

def create
@purchase = Purchase.new(params[:purchase])
if @purchase.save
 redirect_to purchase_path, :notice 'Thanks for your purchase'
else
render :action => 'new'
end
end

Это предполагает, что у вас есть покупка и новый путь... Хотя было бы полезно, если бы вы могли сообщить нам, какие ошибки вы получаете

Другие вопросы по тегам