我尝试在我的rails应用程序中使用usu.但我不明白我如何授予用户更改密码的功能.我需要一个带有"旧密码","新密码"和"新密码确认"字段的表单.我该怎么做?
如果我在"/ profile"页面上使用默认设计表单
<%= render :template => 'devise/passwords/edit',
:locals => {
:resource => my_user_model_variable,
:resource_name => my_user_model_name } %>
Run Code Online (Sandbox Code Playgroud)
在user.rb中包含行
attr_accessible :email, :password, :password_confirmation, :remember_me
Run Code Online (Sandbox Code Playgroud)
但是有
undefined method 'devise_error_messages!' for #<#<Class:0x59b9200>(然后评论devise_error_messages!line)
undefined method 'password' for #<Class:0x59b9200>错误.
我尝试使用自己的PasswordsController:
class PasswordsController < ApplicationController
before_filter :authenticate_user!
def edit
@user = current_user
end
def update
@user = current_user
raise params.inspect
if @user.update_with_password(params[:user])
sign_in(@user, :bypass => true)
redirect_to root_path, :notice => "Password updated!"
else
render :edit
end
end
end
Run Code Online (Sandbox Code Playgroud)
并使用来自此问题的建议:渲染设计编辑密码表单
插入此代码
<%= …Run Code Online (Sandbox Code Playgroud) 我正在尝试在生产服务器上部署我的Rails3.0应用程序.之前有很多麻烦,但所有这些都解决了.而现在我还有另一个.
有乘客错误页面的文字:
错误消息: 未初始化的常量Formtastic :: FormBuilder
异常类: NameError
回溯:
0 /home/ubuntu/.rvm/gems/ruby-1.9.2-p180@rails3.0/gems/client_side_validations-3.1.0/lib/client_side_validations/formtastic.rb 20 in''
1 /home/ubuntu/projects/questroad/config/initializers/client_side_validations.rb 4 in '
2 /home/ubuntu/.rvm/gems/ruby-1.9.2-p180@rails3.0/gems/railties-3.0.7/lib/rails/engine.rb 201 inblock(2 levels)in'
3 /home/ubuntu/.rvm/gems/ruby-1.9.2-p180@rails3.0/gems/railties-3.0.7/lib/rails/engine.rb 200 in"each"
...
谷歌搜索结果对我没有帮助,现在我在这里.
UPD: 另外如果我尝试运行WEBrick服务器也会出现同样的错误.
UPD: 我尝试在Gemfile中评论"gem'client_side_validation'"行,错误消失了.但现在我不能使用这个宝石.