当前位置: 首页 > 知识库问答 >
问题:

DEVISE额外字段未保存到数据库

赵宏达
2023-03-14

我正在尝试在我的设计表单上添加一个额外的字段,如下所示:

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

  <div class="user_field">
    <div class="email">
      <%= f.label :email %><br />
  </div>
    <%= f.email_field :email, autofocus: true, autocomplete: "email"%>
  </div>

  <div class="pass_field">
    <div class="password_field">
    <%= f.label :password %>
      <% if @minimum_password_length %>
      <em class = "minimum">(<%= @minimum_password_length %> characters minimum)</em>
      <% end %><br />
    </div>
    <%= f.password_field :password, autocomplete: "off" %>
  </div>

  <div class="field">
    <div class="confirmation_field" input type = "hidden">
    <%= f.label :password_confirmation %><br />
    <%= f.password_field :password_confirmation, autocomplete: "off" %>
    </div>
  </div>

  <input type="hidden" id="public_key" name="public_key" value="" />
    <script type="text/javascript">
      document.getElementById("public_key").value = getkey();
    </script>

我必须允许额外的字段,所以我创建了一个新的初始值设定项devise_permitted_parameters.rb,如下所示

module DevisePermittedParameters
extend ActiveSupport::Concern

included do
  before_filter :configure_permitted_parameters
end

protected

def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:sign_up, keys: [:email, :password, :password_confirmation])
end

end

DeviseController.send :include, DevisePermittedParameters

输出如下:

Parameters: {"utf8"=>"✓", "authenticity_token"=>"8kB8VeA7pvoK0ROvfwwvibyyBUY/FOEHHYDYJbaBVz7+D2O3HrTYQihU1u8ePYC7nxH8qI2bJpWBjX2NZE0XIA==", "user"=>{"email"=>"wtgwg@gmail.com", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "public_key"=>"qEqGEPmShqM27Gc9CtYPfliPCRI7TQG3xTLZtl3ccIqQJwrvWS6jjZxkiJoM8fD/F4fL2y5xLH5S0Ye5LUiQJQ3SXqrGq1wbRwzEX1Y3GvV1dnNfwBcWvDkigQPvX11MUbzjf3Xiqf+1AtIaWY2+AB04Xou79BEgOtSSc8GDob0=", "commit"=>"Sign up"}

"email"=? LIMIT?[["email","wtgwg@gmail.com "], ["LIMIT",1]]SQL(1.1ms)插入到"用户"("email","encrypted_password","created_at","updated_at")值 (?, ?, ?, ?) [["email","嘿"],["encrypted_password","$2a11$ew.ubHvxuvmrthsuUqA8xu7ND7Xj3oGtNNR9YkziamJwPldsqvx22"],["created_at","2018-04-10 17:17:07.819645"],["updated_at","2018-04-10 17:17:07.819645"]]

问题是public_key正在被存储。有什么帮助吗?

共有1个答案

慕弘伟
2023-03-14

在形式上试试这个

<%= f.text_field :public_key,id: "public_key" ,class: "hidden", value: "" %>

而不是

<input type="hidden" id="public_key" name="public_key" value="" />
 类似资料:
  • 问题内容: 我正在尝试保存订单以及订单中的产品。 订单已保存,但产品未保存。 我有一张桌子,一张桌子和一张桌子。 在订单模型中,我设置了 在桌子上,我有几个额外的字段:,加上,以记录销售价格和售出数量。 我通过以下方式保存数据: $ this-> Order-> saveAll($ data); 这是$ data是什么: 订单已保存到订单表,但什么也没有保存到orders_products表。我希

  • 我想知道为什么我的铁轨没有拯救我的encrypted_password场。 这是我的UserController 这是我的用户模型 此外,我使用此函数保存它 有一件事我怀疑是我创造了我的第一次迁徙 然而,我将:password字段更改为:encrypted_password,它反映在表中。我已经坚持了两个小时了。我想知道是否有什么突出的地方。谢谢 日志显示,注入的数据减去加密密码 插入“用户”(“

  • 我想用自动递增的id(1,2,3…等)将多个数据保存到数据库中,而不是保存在同一列中。用户可以动态添加输入字段,最后单击submit按钮,以不同的id(自动递增的id)将数据保存到数据库中。 我的js生成用户想要的输入字段 形式: 路线: 控制器: 但它只在数据库中保存一个输入字段值。任何能帮助我的人。

  • Im使用firebase,由于某些原因,我的代码没有推送数据,并且Im没有在firebase URL中看到数据。我的密码是这样的 我得到警报“保存”,但我无法在firebase URL中找到数据。 此外,为Firebase中的每个url提供的API键有什么用途。 更新:这种情况发生在IE10中。在其他浏览器中,它工作得很好

  • 我有一个CloudKit应用程序,它基本上是一个带有一个额外功能的主细节设置。任何详细信息对象都可以标记为ActiveNote。当应用程序在iPad上时,只显示这个ActiveNote(没有用户交互)。该应用程序包括通知和订阅,所有数据都在专用数据库的自定义区域中。该应用程序运行良好,但有一个例外。 只有两种记录类型。所有数据都以cnote类型存储。当一个细节项目被选择显示在iPad上时,我会将该

  • 我正在尝试将数据从一个html表单保存到MySQL数据库。我对web dev和JavaScript还是个新手。我有一个表单,用户可以在其中添加行字段,这取决于他们需要多少行。表单可以成功地添加和删除行,但问题是检索所有行字段。当我在form_process php文件中使用$_post时,我只能访问最后一行的详细信息。如何检索用户将要创建的所有行字段,以便将它们保存到数据库? 我试过这些帖子,但它