そこで、スプラッシュページを作成し、この投稿ごとにリダイレクトを設定しました。しかし、それはアプリを台無しにしています。以下のコードを配置すると、アプリはユーザーから送信されたメールアドレスを保存しません。(リダイレクトコードをコメントアウトすると、すべて正常に機能します。)
class ApplicationController < ActionController::Base
protect_from_forgery
include SessionsHelper
before_filter(:except => :splash) do
redirect_to root_path
end
end
これがコントローラーです。Railscast#124に基づいています。したがって、スプラッシュページの場合、ユーザーはサインインしていません。つまり、招待状が保存された後、保存して「準備ができたら通知します」と点滅する必要があります。ただし、上記のフィルターを設定すると、「新規」が再レンダリングされます。
class InvitationsController < ApplicationController
def new
@invitation = Invitation.new
end
def create
@invitation = Invitation.new(params[:invitation])
@invitation.sender = current_user
if @invitation.save
if signed_in?
UserMailer.invitation(@invitation).deliver
flash[:notice] = "Thank you, invitation sent."
redirect_to hunts_path
else
flash[:notice] = "Thank you, we will notify when we are ready."
redirect_to root_path
end
else
render :action => 'new'
end
end
end
私が間違っていることについて何か考えはありますか?