对于Devise with Rails 4.2 . ,当我关闭用户模型中所需的确认时,我能够注册用户,但是当我重新打开它时,我得到了这个错误 .

没有将Array隐式转换为String <

# i.e. OpenSSL::Digest::SHA1#block_length
        def generate_key(salt, key_size=64)
          OpenSSL::PKCS5.pbkdf2_hmac_sha1(@secret, salt, @iterations, key_size)
        end
      end

指的是这条线

devise (3.5.10) lib/devise/token_generator.rb:50:in `pbkdf2_hmac_sha1'

我正在使用mailtrap进行开发设置,我可以在我的联系页面中收到邮件 .

在我的user.rb中我有
设计:database_authenticatable,:registerable,:recoverable,:rememberable,:trackable,:validatable,:确认

我的设计初始化设置与另一个有效的项目完全相同 .

在我的应用程序控制器中,我设置了参数

before_action:configure_permitted_parameters,if :: devise_controller? def configure_permitted_parameters devise_parameter_sanitizer.for(:sign_up){| u | u.permit(:firstname,:lastname,:email,:avatar,:password,:password_confirmation)} end

我的观点/设计包含文件夹(确认,邮件,密码,注册,会话,共享和解锁) .

我的新设计注册如下:

<div class="row">
<%= bootstrap_devise_error_messages! %>
<div class="panel panel-default devise-bs">
  <div class="panel-heading">
    <h4><%= t('.sign_up', :default => "Sign up") %></h4>
  </div>
  <div class="panel-body">
    <%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), html: { role: "form" }) do |f| %>
      <div class="form-group">
        <%= f.label :firstname %>
        <%= f.text_field :firstname, autofocus: true, class: "form-control" %>
      </div>
      <div class="form-group">
        <%= f.label :lastname %>
        <%= f.text_field :lastname, autofocus: true, class: "form-control" %>
      </div>
      <div class="form-group">
        <%= f.label :email %>
        <%= f.email_field :email, autofocus: true, class: "form-control" %>
      </div>
      <div class="form-group">
        <%= f.label :avatar %><br>
        <%= f.file_field :avatar, autofocus: true, class: "form-control" %>
      </div>
      <div class="form-group">
        <%= f.label :password %>
        <% if @minimum_password_length %>
        <em>(<%= @minimum_password_length %> characters minimum)</em>
        <% end %>
<%= f.password_field :password, autocomplete: "off", class: "form-control" %> </div> <div class="form-group"> <%= f.label :password_confirmation %> <%= f.password_field :password_confirmation, autocomplete: "off", class: "form-control" %> </div> <%= f.submit t('.sign_up', :default => "Sign up"), class: "btn btn-primary" %> <% end %> </div> <div class="panel-footer"> <%= render "devise/shared/links" %> </div> </div>

关于我可能做错的任何提示,我已经将我的轮子旋转了几天 . 谢谢 :)