我会在用户表中添加一个名为completed_profile
布尔类型的字段:
rails g add_completed_profile_to_users completed_profile:boolean
然后在application_controller.rb中创建一个过滤器方法
def complete_profile
if current_user.completed_profile?
redirect_to the_path_after_log_in
else
redirect_to edit_profile_path, error: "Please update your profile."
end
end
*field_one 和 field_two 是进入应用程序之前必须填写的字段。*
在您应用的其他控制器中:
before_filter :complete_profile
此过滤器不应应用于响应呈现编辑配置文件页面或新帐户页面的控制器和操作,如果edit_profile_path = users#edit
在用户控制器中意味着您的过滤器将如下所示:
before_filter :complete_profile, except: ['edit', 'update', 'new', 'create']
变体 2,没有迁移:
在application_controller.rb中创建一个过滤器方法
def complete_profile
if current_user.field_one.present? && current_user.field_two.present?
redirect_to the_path_after_log_in
else
redirect_to edit_profile_path, error: "Please update your field_one and field_two."
end
end
在您的应用程序的其他控制器中:
before_filter :complete_profile