У меня есть небольшое приложение, в котором индексная страница представляет собой форму, которая инструктирует пользователя об их электронной почте, я изменил маршрут, чтобы root_path был «новым» ', которое оказывает мою форму:Rails 3 'новое' действие как индексная страница из-за формы
Oa::Application.routes.draw do
resources :signups
match "/confirm", :to => "pages#confirm"
root :to => 'signups#new'
end
Это нормально работает, когда я отправляю форму, она отлично работает. Когда я отправляю на корневую страницу и вызываю ошибку проверки, адресная строка имеет адрес localhost: 3000/signups и показывает мне мои ошибки проверки, что тоже хорошо, но если бы я вручную посетил http://localhost:3000/signups, это дало мне ошибку «The для «RegistrationsController» невозможно найти «индекс». Было бы хорошо, если бы я создал действие «index» и redirect_to root_path, чтобы я не получил «Индекс действия» не найден для RegistrationsController, если бы я сразу получил доступ к http://localhost:3000/signups? Это правильный способ сделать это?
class SignupsController < ApplicationController
def index
redirect_to root_path
end
def new
@signup = Signup.new
end
def create
@signup = Signup.new(params[:signup])
if @signup.save
UserMailer.registration_confirmation(@signup).deliver
flash[:notice] = "Signup created successfully."
redirect_to confirm_path
else
render :action => "new"
end
end
end
Спасибо!
J
Delba, Это дает мне ошибку Нет совпадений маршрутов [GET] "/". Кроме того, почему я не должен использовать ресурсы? Я планирую добавить другие действия здесь позже. – JeffC
Вы уверены? Или 'root: to => 'signups # new''. Я собираюсь обновить свой ответ, почему вы не должны использовать ресурсы в этом случае – Damien
Ах да, это работает, root: to => 'signups # new' Я сделал опечатку. Так почему я не должен использовать ресурсы? – JeffC