我目前正在尝试重定向user.account_delinquent = true
的用户帐户。问题是,即使帮助方法处于活动状态,该帐户仍然可以访问测试控制器。
我的控制器已将ApplicationHelper
包含在before_action :account_delinquency
中,但该方法拒绝触发。
如果account_delinquency
,如何正确设置current_user.account_delinquent == true
辅助方法以启动重定向?
我的代码如下:
magazines_controller.rb
class MagazinesController < ApplicationController
include ApplicationHelper
before_action :account_delinquency
def index
@magazines = Magazine.all
end
end
application_helper.rb
def account_delinquency
if user_signed_in? || employer_signed_in?
redirect_to update_account_index_path, alert: 'We were unable to charge your account' if current_user.account_delinquent == true || current_employer.account_delinquent == true
end
end
答案 0 :(得分:1)
尝试在account_delinquency
中定义ApplicationController
,而不是ApplicationHelper
。我总是在控制器中执行操作,而不是在帮助器中。
答案 1 :(得分:0)
我设法通过将user_session同步到用户变量本身来获得帮助方法。因为,此方法仅用于登录成员。
application_helper.rb
containedNodeSet
controller.rb
def account_delinquency
@current_user ||= User.find_by_session(session[:user_id])
redirect_to update_account_index_path, alert: 'We were unable to charge your account' if @current_user.account_delinquent
end