我在注册表单中添加了一个基于不同模型的字段,请参见How do I use nested attributes with the devise model了解血淋淋的详细信息.这部分工作正常.

现在的问题是,当我保存时,它在Deave提供的注册控制器的创建操作中失败,该控制器在该字段(公司)上有一个Activerecord::UnknownAttributeError.

我假设我需要覆盖注册控制器,或者是否有更好/更简单的方法来实现这一点?

推荐答案

在您的表单中,您是否通过不属于您的用户模型或任何嵌套模型的批量分配来传递任何其他属性?

如果是这样,我相信ActiveRecord::UnknownAttributeError在本例中被触发.

否则,我认为您可以创建自己的控制器,生成如下内容:

# app/controllers/registrations_controller.rb
class RegistrationsController < Devise::RegistrationsController
  def new
    super
  end

  def create
    # add custom create logic here
  end

  def update
    super
  end
end 

然后告诉Desive使用该控制器,而不是默认控制器:

# app/config/routes.rb
devise_for :users, :controllers => {:registrations => "registrations"}

Ruby-on-rails相关问答推荐

如何判断是否定义了Rails模型?

API Rails 路由,令牌是路由的一部分

为什么是 json.partial!使用新的哈希语法传递本地时,jbuiler 模板中的行不执行?

错误:部署到 Heroku 时找不到模块tailwindcss/defaultTheme

Rails 7.0.4 和 link_to 的数据确认不起作用

NoMethodError:Puma::Events:Class 的未定义方法字符串

在bash中匹配带有空格字符的字符串

ViewModel 和 Controller 有什么区别?

Rails:序列化数据库中的对象?

Ruby 地理定位Ruby /插件

在一行中更改多个对象属性

如何避免 has_many :through 关系中的重复?

Rails 助手应该假设实例变量存在还是应该将它们作为参数接收?

可能在rails中有多态has_one关系?

验证一个对象是否有一个或多个关联对象

将图标添加到 Rails 应用程序

连接表的最佳 SQL 索引

Rails 范围为 IS NOT NULL 并且不为空/空白?

rails 获取应用程序根/基本 url

Ruby on Rails:Cucumber:我如何获取单个功能?