У меня есть небольшое приложение, где страница указателя представляет собой форму, которая инструктирует пользователя о его электронной почте. Я изменил свой маршрут, так что root_path является «новым» действием, которое отображает мою форму:
Oa::Application.routes.draw do
resources :signups
match "/confirm", :to => "pages#confirm"
root :to => 'signups#new'
end
Это работает нормально, когда я отправляю форму, она работает нормально.Когда я отправляю на корневую страницу и вызываю ошибку проверки, адресная строка имеет URL localhost: 3000 / signups и показывает мои ошибки проверки, что тоже хорошо, но если я должен был вручную посетить http://localhost:3000/signups, это даетмне ошибка "Не удалось найти действие 'index' для SignupsController".Было бы хорошо, если бы я создал действие 'index' и redirect_to root_path, чтобы я не получил "Индекс действия", который не может быть найден для SignupsController ", если бы я получил прямой доступ к 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