【发布时间】:2011-06-24 09:05:43
【问题描述】:
上下文:
导轨 3.0.3
设计 1.1.5 和 1.2rc
我有以下设计 rdoc
rails g devise:install
rails g devise user
rails g devise employee
rails g devise:views users
rails g devise:views employees
routes.rb
devise_for :users
devise_for :employees, :path => 'admin'
设计.rb
config.scoped_views = true
rake 路线给予
new_user_session GET /users/sign_in(.:format) {:action=>"new", :controller=>"devise/sessions"}
user_session POST /users/sign_in(.:format) {:action=>"create", :controller=>"devise/sessions"} destroy_user_session GET /users/sign_out(.:format) {:action=>"destroy", :controller=>"devise/sessions"} user_password POST /users/password(.:format) {:action=>"create", :controller=>"devise/passwords"} new_user_password GET /users/password/new(.:format) {:action=>"new", :controller=>"devise/passwords"} edit_user_password GET /users/password/edit(.:format) {:action=>"edit", :controller=>"devise/passwords"} PUT /users/password(.:format) {:action=>"update", :controller=>"devise/passwords"} user_unlock POST /users/unlock(.:format) {:action=>"create", :controller=>"devise/unlocks"} new_user_unlock GET /users/unlock/new(.:format) {:action=>"new", :controller=>"devise/unlocks"} GET /users/unlock(.:format) {:action=>"show", :controller=>"devise/unlocks"} new_employee_session GET /admin/sign_in(.:format) {:action=>"new", :controller=>"devise/sessions"} employee_session POST /admin/sign_in(.:format) {:action=>"create", :controller=>"devise/sessions"} destroy_employee_session GET /admin/sign_out(.:format) {:action=>"destroy", :controller=>"devise/sessions"} employee_password POST /admin/password(.:format) {:action=>"create", :controller=>"devise/passwords"} new_employee_password GET /admin/password/new(.:format) {:action=>"new", :controller=>"devise/passwords"} edit_employee_password GET /admin/password/edit(.:format) {:action=>"edit", :controller=>"devise/passwords"} PUT /admin/password(.:format) {:action=>"update", :controller=>"devise/passwords"}
邮件发送者查看用户或员工是
link_to 'Change my password', edit_user_password_url(@resource, :reset_password_token => @resource.reset_password_token)
link_to 'Change my password', edit_employee_password_url(@resource, :reset_password_token => @resource.reset_password_token)
但是如果我提交表单我会遇到这个错误(对于用户或员工)
设计/密码#create 中的类型错误
显示第 8 行引发的 /app/views/users/mailer/reset_password_instructions.html.erb:
无法将字符串转换为哈希
8: @resource.reset_password_token) %>
如果你有想法?
【问题讨论】:
-
我尝试使用 url_for 而不是 edit_user_password_url 但我有同样的错误
-
好的,解决方案在application_controller.rb添加
ActionMailer::Base.default_url_options[:host] = "http://domain.com"