インデックスページがユーザーに電子メールを指示するフォームである小さなアプリケーションを持っています。私はroot_pathが 'new私のフォームをレンダリングするアクション:Rails 3 '新しい'アクションは、フォームのためのインデックスページとして
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に見つかりませんでした。 http://localhost:3000/signupsに直接アクセスすると、「index_action」アクションを作成し、root_pathにredirect_toを発行して「SignupsControllerにアクションのインデックスが見つかりませんでした」というメッセージが表示されないようにしても問題ありませんか?これを行うには適切な方法ですか?
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