【发布时间】:2016-11-07 23:45:05
【问题描述】:
每次我尝试在网络上唱歌/唱歌时都会遇到一个错误,我要发疯了。
Heroku 日志:
Started GET "/users/sign_in" for 201.235.89.150 at 2016-07-06 01:35:03 +0000
Completed 500 Internal Server Error in 3ms (ActiveRecord: 0.0ms)
NoMethodError (undefined method `for' for #<Devise::ParameterSanitizer:0x007f5968e0a920>):
app/controllers/application_controller.rb:11:in `configure_permitted_parameters'
application_controller.rb
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
before_filter :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:username, :email, :password, :provider, :uid) }
devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:username, :email, :password, :current_password) }
end
end
问题是它在本地运行良好。它只是在 Heroku 上。而且几天前它工作得很好。
【问题讨论】:
-
看看这个。也许它可以帮助你。 stackoverflow.com/questions/19791531/…
-
几天前你说它运行良好是指在heroku上?我会尝试在 heroku 上获得一个新的 gemset 并重新启动 dynos 看看是否有帮助。
-
在 Heroku 上,我的设计 gem 已更新到 4.2,因此“.for”不再起作用。正如@EddeAlmeida 建议的那样,我已改为“.permit”。虽然,现在我对此有其他问题。谢谢大家。
标签: ruby-on-rails ruby heroku devise