0
그래서 스플래시 페이지를 만들고이 페이지 당 리디렉션을 설정했습니다. post. 하지만 앱이 엉망이됩니다. 아래에 코드가있을 때, 앱은 사용자가 제출 한 이메일 주소를 저장하지 않습니다. (I 리디렉션 코드를 주석 때, 모든 것이 잘 작동합니다.) 레일 before_filter 차단 성공 저장 방법 만들기
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
내가 뭘 잘못하고있어?
그래. 그것이 문제였습니다. 내가 말한대로 정확하게하기위한 레일에 수치스러워. 나는 필터를 다음과 같이 수정했다.'before_filter (: except => [: splash, : create]) do redirect_to root_path end' –