質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Cloud9

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

Devise

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

RubyGems

RubyGemsはRubyによるプログラミングのためのパッケージマネジメントツールです。ユーザはこれを使用することで、Rubyライブラリのダウンロードやアップデートや、依存関係の自動解決が可能になります。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

1回答

3555閲覧

rails devise ヘルパーメソッド current_userが使えない

退会済みユーザー

退会済みユーザー

総合スコア0

Cloud9

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

Devise

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

RubyGems

RubyGemsはRubyによるプログラミングのためのパッケージマネジメントツールです。ユーザはこれを使用することで、Rubyライブラリのダウンロードやアップデートや、依存関係の自動解決が可能になります。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2020/11/13 07:07

編集2020/11/15 14:38

deviseを導入すると使えるようになるヘルパーメソッドのcurrent_userがなぜか使えなくなってしまいました。
別のページではcurrent_userや他のヘルパーメソッドが使えていたのですが、このviewだとNomethodErrorとなってしまいます汗
またエラーコードはActionView::Template::Errorとなっておりcurrent_userが存在していない?という風になってしまいます、
このviewだとヘルパーメソッドが適用されない範囲にあるということなのかと思いコントローラーで@current_user = current_userとしてインスタンス変数に入れてみたのですが特に変わらずでした汗

該当のview

<% unless current_user?(@user) %> <div id="follow_form"> <% if current_user.following?(@user) %> <%= render 'unfollow' %> <% else %> <%= render 'follow' %> <% end %> </div> <% end %>

エラ-コード

ActionView::Template::Error (undefined method `current_user?' for #<#<Class:0x00007f89eddc9078>:0x00007f89fc7ba588> Did you mean? current_user current_page?): 1: <% unless current_user? %> 2: <div id="follow_form"> 3: <% if current_user.following?(@user) %> 4: <%= render 'unfollow' %> app/views/mypages/_follow_form.html.erb:1:in `_app_views_mypages__follow_form_html_erb__3920905308085950541_70115311677300' app/views/mypages/show.html.erb:12:in `_app_views_mypages_show_html_erb___2425777192918927473_70115311605620'

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

もしかしてまだログインしていないのでは。

current_user はログインしたユーザ情報が入っています。そのためログインしていない場合 nil です。

ちなみにログイン判定は user_signed_in? で可能です。

https://github.com/heartcombo/devise#controller-filters-and-helpers

text

1To verify if a user is signed in, use the following helper: 2user_signed_in? 3 4For the current signed-in user, this helper is available: 5current_user

ログインしている場合なら current_user? 使えると思いますよ。

投稿2020/11/18 12:33

nocomment

総合スコア64

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問