0
私はDeviles 4.1を自分のRails 5.0.0.rc1プロジェクトにインストールしています。私application.html.erb
でDevits 4.1とRails 5.0.0.rc1で未定義のローカル変数リソース
、私はこのエラーメッセージのヘルパーを持っている:
<%= devise_error_messages! %>
私はthis boilerplate helperでそれをオーバーライドしています
module DeviseHelper
def devise_error_messages!
return "" unless devise_error_messages?
messages = resource.errors.full_messages.map { |msg| content_tag(:li, msg) }.join
sentence = I18n.t("errors.messages.not_saved",
:count => resource.errors.count,
:resource => resource.class.model_name.human.downcase)
html = <<-HTML
<div id="error_explanation">
<h2>#{sentence}</h2>
<ul>#{messages}</ul>
</div>
HTML
html.html_safe
end
def devise_error_messages?
!resource.errors.empty?
end
end
をしかし、私は私のサイトをリロードし、私のroot_page
に行くとき、私を得ますこのエラー:
NameError at/
undefined local variable or method `resource' for #<#<Class:0x007f8105dc24f8>:0x007f8105db73f0>
エラーが私のコントローラで私のapp/helpers/devise_helper.rb
def devise_error_messages?
!resource.errors.empty?
end
にこのラインで起こる私が追加しました:
before_action :authenticate_user!, except: [:index, :show]
これを引き起こしている可能性がありますか?
良いアイデアですが、私はまだ同じエラーが発生しています。これがインストールされたバージョンは 'Installing devise 4.0.3(was 4.1.0)'でした。それ以降のバージョンでも動作しませんか?いずれにせよ、宝石を変更してもこのエラーは修正されません。 – marcamillion
私のバンドルを確認して、はい4.0.3は私のために働いていますが、これは非常に似たような問題です[ここ](http://stackoverflow.com/questions/22232561/attribute-name-showing-on -devise-error) –
私はその解決策を試みましたが、それは私のためには機能しませんでした。問題は 'リソース'にあり、残りのデイジーチェーン化されたメソッドではありません。 – marcamillion