我刚刚升级到Rails 5并且一切都很顺利但是没有明显的理由在skip_before_action
之后调用的方法不允许rspec与此消息一起运行
在process_action回调之前:尚未定义redirect_heroku_user(ArgumentError)
这是非常奇怪的,因为它在rails 4上运行得很好。这是我的代码:
# application_controller.rb
def redirect_heroku_user
redirect_to root_path if heroku_user?
end
# some_controller.rb
skip_before_action :redirect_heroku_user, only: :edit
答案 0 :(得分:24)
因此,您的解决方案是将raise: false
选项传递给skip_before_action
:
skip_before_action :redirect_heroku_user, raise: false
有关详细信息,请参阅changelog。
答案 1 :(得分:4)
在Rails 5中,如果方法$scope.promoFilter = function(promo_expiration) {
function promosFilteredBy(promo_expiration) {
return $scope.promos.filter(function(promo) {
return moment(promo_expiration).isBefore(promo.Expiration_Date);
});
}
$scope.addPromos = promosFilteredBy(promo_expiration);
};
未在同一个控制器中定义,则会引发此异常。
您可以传递redirect_heroku_user
以避免mentioned here:
raise: false