创建新用户时 ActiveModel::ForbiddenAttributesError

2024-04-18

我在 Ruby 中有这个模型,但它抛出了一个ActiveModel::ForbiddenAttributesError

class User < ActiveRecord::Base
  attr_accessor :password
  validates :username, :presence => true, :uniqueness => true, :length => {:in => 3..20}
  VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
  validates :email, presence: true, :uniqueness => true, format: { with: VALID_EMAIL_REGEX }

  validates :password, :confirmation => true
  validates_length_of :password, :in => 6..20, :on => :create

  before_save :encrypt_password
  after_save :clear_password

  def encrypt_password
    if password.present?
      self.salt = BCrypt::Engine.generate_salt
      self.encrypted_password= BCrypt::Engine.hash_secret(password, salt)
    end
  end

  def clear_password
    self.password = nil
  end
end

当我运行这个动作时

  def create
    @user = User.new(params[:user])
    if @user.save
      flash[:notice] = "You Signed up successfully"
      flash[:color]= "valid"
    else
      flash[:notice] = "Form is invalid"
      flash[:color]= "invalid"
    end
    render "new"
  end

on ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux].

您能告诉我如何消除此错误或建立正确的用户注册表单吗?


我猜你使用的是Rails 4。如果是这样,则需要的参数必须按要求标记。

你可能想这样做:

class UsersController < ApplicationController

  def create
    @user = User.new(user_params)
    # ...
  end

  private

  def user_params
    params.require(:user).permit(:username, :email, :password, :salt, :encrypted_password)
  end
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建新用户时 ActiveModel::ForbiddenAttributesError 的相关文章

随机推荐

  • WPF:如何让单选按钮显示为水平行的切换按钮

    我目前正在构建一个将在触摸面板中使用的用户界面 因此 我想将任何单选按钮组显示为切换按钮的水平行 我已经弄清楚如何显示 ToggleButtons 而不是标准项目符号项目
  • 禁用缓存 YouTube 视频

    当 YouTube 使 YouTube 视频与缓存一起使用时 YouTube 取得了相当大的成就 然而 这导致我的 ajax 网站出现问题 我想知道是否有办法禁用 YouTube 视频的缓存 特别是在 Internet Explorer 中
  • 解码 PKCS#12 文件

    我正在寻找在 NET 中解码 PKCS 12 文件的方法 我需要提取私钥和任何证书 以便我可以以编程方式访问以下内容 modulus 公共指数 私人指数 prime1 prime2 指数1 指数2 系数 我需要此信息 以便我可以成功使用 P
  • 从 Facelets 错误页面引用 CDI 托管 bean

    我很难尝试让通用错误页面在使用 JSF 2 Facelets 和 CDI 的 非常简单的 WAR 项目中工作 我的应用程序服务器是 WebLogic 12c 它应该支持所有这些开箱即用的功能 但它无法显示错误页面 当我将完全相同的 WAR
  • 监控 AppFabric 缓存

    我在 3 台服务器 AppFabric 1 1 上设置了高度可用的 AppFabric 缓存 我想监视每台服务器上的本地缓存 如果它因任何原因而关闭 则将其启动备份 Problem 问题是权限 我编写了一个 Powershell 脚本来执行
  • 从 php 中的日期时间获取年/月/日?

    I used date w timestamp and date w timestamp 要知道这一天 date n timestamp 几个月等 现在我正在使用日期时间 我想知道从日期时间获取一天 一个月等的等效函数是什么 PS 我知道我
  • ServiceBus RetryExponential 属性含义

    我很难理解与 QueueClients 结合使用的 RetryExponential 类 我也假设 SubscriptionClients 属性已列出here http msdn microsoft com en us library wi
  • Grails:当我向 message.properties 添加新属性时出现 Native2ascii 错误

    当我在运行时向 grails 应用程序中的 message properties 文件添加新属性时 出现了一个奇怪的错误 当我通过命令行重新启动应用程序或重新启动STS时 此错误消失 我使用的是 2 0 1 版本 直到一周前 我还能够在运行
  • 向 WooCommerce 单一产品页面添加多个选项卡

    我正在尝试向 WooCommerce 添加三个自定义选项卡 我有下面的代码 其中两个显示 但由于某种原因 属性描述选项卡没有显示在页面上 不仅 数量定价 选项卡不显示其描述 我尝试将代码的不同部分移动到不同的位置 并且检查了代码是否有错误或
  • 如何使用 ggplot 显示多个显示分布的箱线图

    我正在尝试获取这样的图表来显示每个年龄组的箱线图分布 But instead my plot looks like this 如何显示箱线图而不是点 为什么我的 Y 轴不是数字 My data looks like this 这是我正在尝试
  • DPI 意识真的需要吗?

    我正在学习如何使用 GDI GDI 绘制 GUI 我发现了这个http msdn microsoft com en us library windows desktop dd756596 v vs 85 aspx step 2 declar
  • 如何删除系统命名空间中的 kubernetes pod(和其他资源)

    我错误地在系统命名空间 kube system 中添加了一个 pod 然后我无法删除这个 Pod 它似乎还创建了一个副本集 每次删除这些项目时 都会重新创建它们 似乎找不到删除属于系统命名空间 kube system 的 Pod 或副本集的
  • 连接关闭且应用程序终止后,BLE 堆栈反复重新连接到外设

    我有一个应用程序 它打开与 BLE 设备的短暂连接 执行一些特征读取和写入 然后断开并关闭连接 应用程序使用 autoReconnect false 并且设备未配对或绑定 我看到 Android 的一些非常奇怪的行为 它似乎反复且意外地重新
  • 从用户控件内部将选项卡添加到选项卡控件

    如何从选项卡本身包含的另一个用户控件将选项卡添加到一个用户控件中存在的选项卡控件 我可以在不将 tabcontrol 作为构造函数中的参数传递的情况下 也许通过某种静态全局方法 来完成此操作吗 我试过了 public static Obse
  • Android的ARGB_8888位图内部格式总是RGBA吗?

    我正在尝试创建一个Bitmap在 Android 中使用Bitmap Config ARGB 8888在我从外部源收到字节后 据我所知 在 a 中设置原始字节的最快方法Bitmap 不使用JNI 是通过使用copyPixelsFromBuf
  • 无法使用 Java 删除文件夹

    我试图删除一个只有文件但没有子文件夹的文件夹 但没有成功 Code File rowFolder new File folderPath String files rowFolder list for String file files F
  • pkg-config 无法在 ffmpeg 构建上找到库(linux)

    我正在尝试在 ubuntu 上为 android 构建 ffmpeg I ve cross compiled all the dependencies I need for my configuration I ve set up the
  • .NET6 中具有优先级队列的 Parallel.ForEach

    我正在尝试奔跑Parallel ForEach on my Priority Queue但我收到以下错误 严重性代码 说明 项目文件行抑制状态 错误 CS0411 无法从用法推断方法 Parallel ForEach OrderablePa
  • 如何在地图视图中隐藏“当前位置”标注

    点击代表用户位置的脉动蓝色圆圈会弹出 当前位置 标注 有办法抑制吗 更新用户位置后 您可以更改注释视图上的一个属性 void mapView MKMapView mapView didUpdateUserLocation MKUserLoc
  • 创建新用户时 ActiveModel::ForbiddenAttributesError

    我在 Ruby 中有这个模型 但它抛出了一个ActiveModel ForbiddenAttributesError class User lt ActiveRecord Base attr accessor password valida