0

因为/login我的应用程序运行良好,但是对于/login?user="something" giving 500

我正在使用设计宝石

路线.rb

devise_for :users, :controllers => { :sessions => 'devise/sessions'}, :skip => [:sessions]   do
  get '/login' => "devise/sessions#new", :as => :new_user_session
end

错误 :

Completed 500 Internal Server Error in 263ms

NoMethodError (undefined method `stringify_keys' for "\"something\"":String):


Rendered /usr/local/rvm/gems/ruby-1.9.2-head/gems/actionpack-3.1.0/lib/action_dispatch/middleware/templates/rescues/_trace.erb (2.6ms)
Rendered /usr/local/rvm/gems/ruby-1.9.2-head/gems/actionpack-3.1.0/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (1.7ms)
Rendered /usr/local/rvm/gems/ruby-1.9.2-head/gems/actionpack-3.1.0/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (7.9ms)
4

1 回答 1

1

stringify_keys是 Rails 混合到 Ruby Hash 类中的一种方法,所以这里的问题是 devise 期望用户参数中的属性值对的散列而不是纯字符串。换句话说,它需要一个用户模型对象,而不仅仅是一个用户名。

Rails 用于将嵌套属性值对打包到 URL 查询字符串或 HTML 表单参数中的约定使用方括号,因此您可能需要这样的内容:

/login?user[name]=someone&user[password]=secret
于 2012-12-26T14:07:31.133 回答