我有一个 rails 应用程序,它使用 devise 进行注册并 rolify 用于角色。我想要一个索引页面,其中包含管理员可以访问的每个用户的编辑链接。此编辑页面也应该无需使用密码即可工作。现在 edit_user_path 进入当前用户的编辑页面,这不是我想要的。
实施这种网站的最佳方法是什么?我已经在这里阅读了一些关于此的帖子,但似乎没有一个能给我我想要的东西。
请指出我正确的方向!
已编辑 我正在尝试这样做,但仍然遇到来自 Users_controller 的“当前密码不能为空”:
def update
@user = User.find(params[:id])
if params[:user][:password].blank?
params[:user].delete(:password)
params[:user].delete(:password_confirmation)
end
if @user.update_attributes(user_params)
redirect_to users_path, :notice => "User updated."
else
redirect_to users_path, :alert => "Unable to update user."
end
end
在我看来,我有一个 edit.html.erb 文件,它呈现以下形式:
<div class="panel-body">
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f| %>
<%= devise_error_messages! %>
<div class="form-group">
<%= f.label :email %>
<%= f.email_field :email, class: "form-control", :autofocus => true %>
</div>
<div class="form-group">
<%= f.label :username %>
<%= f.text_field :username, class: "form-control" %>
</div>
<div class="form-group">
<%= f.label :firstname %>
<%= f.text_field :firstname, class: "form-control" %>
</div>
<div class="form-group">
<%= f.label :lastname %>
<%= f.text_field :lastname, class: "form-control" %>
</div>
<div class="form-group">
<%= f.label :city %>
<%= f.text_field :city, class: "form-control" %>
</div>
<div class="form-group">
<%= f.label :zip %>
<%= f.text_field :zip, class: "form-control" %>
</div>
<div class="form-group">
<%= f.label :state %>
<%= f.text_field :state, class: "form-control" %>
</div>
<div class="form-group">
<%= f.label :country %>
<%= f.text_field :country, class: "form-control" %>
</div>
<div class="form-group">
<%= f.submit "Update", class: "btn btn-primary" %>
</div>
<% end %>
</div>
最后在我的 routes.rb 文件中,我有这一行来呈现编辑页面。我可以显示编辑页面,但输入信息然后点击更新只会将我射到 /users 并出现错误“当前密码不能为空”
get 'pressroom/accounts/:id/edit' => 'users#edit', :as => :admin_edit_user