Итак, я делаю всплывающую страницу, и я настроил перенаправление на это post. Но это испортило приложение. Когда у меня есть код ниже, приложение не сохраняет адреса электронной почты, отправленные пользователями. (Когда я комментирую код перенаправления, все работает нормально.)рельсы 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
Любые идеи, что я делаю неправильно?
Yup. Это была проблема. Позор на рельсах для выполнения именно того, что я сказал. Я закончил тем, что модифицировал фильтр: 'before_filter (: except => [: splash,: create]) сделать redirect_to root_path end' –