gpt4 book ai didi

ruby-on-rails - 使用 Devise 以编程方式创建新用户

转载 作者:数据小太阳 更新时间:2023-10-29 08:00:24 24 4
gpt4 key购买 nike

我正在使用 Devise 来管理我的 Rails 应用程序中的用户。我有一个可供管理员用户使用的按钮,该按钮会指向一个允许他们创建其他管理员用户帐户的表单。

提交表单时调用此代码:

@user = User.new(:email => params[:email], :password => params[:password], :password_confirmation => params[:password_confirmation])
@user.admin = true
@user.save

它似乎无法正常工作,因为当我注销并尝试使用新的管理员帐户登录时失败了。我猜上面的代码不是使用 Devise 创建新用户的正确方法。

编辑:

日志

Started POST "/users/13/create_admin" for 127.0.0.1 at 2013-07-16 17:01:38 +0100
Processing by UsersController#create_admin as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"VpP78Zy8SAcyC1Mgg6hEjG2I5jqNzIHXQGtbjUzDYVE=", "users"=>{"email"=>"test@admin.com", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Sign up", "id"=>"13"}
User Load (0.5ms) SELECT "users".* FROM "users" WHERE "users"."id" = 13 LIMIT 1
(0.3ms) BEGIN
(0.1ms) ROLLBACK
Rendered users/create_admin.html.erb within layouts/application (0.0ms)
Completed 200 OK in 12ms (Views: 5.3ms | ActiveRecord: 0.9ms)

这是我的表格:

  <%= form_for :users, :html => { :id => "signup-form" }, :url => create_admin_user_path do |f| %>
<div><%= f.label :email %>
<%= f.email_field :email, :autofocus => true %></div>

<div><%= f.label :password %>
<%= f.password_field :password %></div>

<div><%= f.label :password_confirmation %>
<%= f.password_field :password_confirmation %></div>

<div class="actions">
<div><%= f.submit "Sign up", :class => "btn btn-success" %></div>
</div>

最佳答案

你实际上是在发帖

"users"=>{"email"=>"test@admin.com", "password"=>""}

所以,你应该是

@user = User.new(:email => params[:users][:email], :password => params[:users][:password], :password_confirmation => params[:users][:password_confirmation]))
@user.admin = true
@user.save

关于ruby-on-rails - 使用 Devise 以编程方式创建新用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17681667/

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