gpt4 book ai didi

ruby-on-rails - 使用 Rails 4 将自定义字段/列添加到 Devise

转载 作者:行者123 更新时间:2023-12-02 21:11:17 28 4
gpt4 key购买 nike

我正在尝试将 full_name 字段/列添加到我的用户模型(使用 devise gem)和 Rails 4。

网上大部分例子recommend using attr_accessible ,但听起来在 Rails 4 中应该采用不同的方法。

如何将 full_name 添加到我的用户模型中?我已经能够成功运行迁移。

文件:迁移 > add_full_name_to_users

class AddFullNameToUsers < ActiveRecord::Migration
def change
add_column :users, :full_name, :string
end
end

文件:注册> app/views/devise/registration/new.html

.
.
.
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
<%= devise_error_messages! %>

<%= f.label :full_name %>
<%= f.text_field :full_name, :autofocus => true %>

<%= f.label :email %>
<%= f.email_field :email %>
.
.
.

最佳答案

一旦您的模型具有 full_name 属性,您就必须为 #sign_up 和 #account_update Devise 操作配置允许的参数。

class ApplicationController < ActionController::Base
before_action :configure_devise_permitted_parameters, if: :devise_controller?

protected

def configure_devise_permitted_parameters
registration_params = [:full_name, :email, :password, :password_confirmation]

if params[:action] == 'update'
devise_parameter_sanitizer.for(:account_update) do
|u| u.permit(registration_params << :current_password)
end
elsif params[:action] == 'create'
devise_parameter_sanitizer.for(:sign_up) do
|u| u.permit(registration_params)
end
end
end

end

关于ruby-on-rails - 使用 Rails 4 将自定义字段/列添加到 Devise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16297797/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com