【发布时间】:2026-02-06 04:15:01
【问题描述】:
我不确定确保每个用户都有一些必要属性的最佳方法是什么,如果他们没有,我想将他们重定向到“新”页面,例如
class ApplicationController < ActionController::Base
protect_from_forgery
before_filter :authenticate_user!, :valid_location
def valid_location
if (current_user.location.nil? || current_user.location.city.nil?)
redirect_to new_user_locations_path(current_user.id)
else
true
end
end
上面的例子是有缺陷的,因为它创建了一个重定向循环。我可以明确地使用一些建议来创建这种验证。谢谢
【问题讨论】:
-
在位置控制器中,只需添加
skip_before_filter :valid_location, only: :new即可修复重定向循环。而且,您不需要返回 true,因此只需删除 else 部分。
标签: ruby-on-rails ruby-on-rails-3 validation