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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails 6

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

Q&A

解決済

1回答

1135閲覧

NoMethodエラーが出ました

jin_707502345

総合スコア8

Ruby on Rails 6

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

0グッド

0クリップ

投稿2020/08/27 01:53

編集2020/08/27 02:36

rails入門書を見ながらメッセージボードを作っています。
「NoMethod 」エラーが出てしまいました。

エラー内容

NoMethodError in BoardMessagesController#index undefined method `authenticate_account!' for #<BoardMessagesController:0x00007ff175d69ef8> Did you mean? authenticate_with_http_basic Extracted source (around line #428): 426 427  428 429 430 431 lambda do |target, value, &block| target, block, method, *arguments = expand(target, value, block) target.send(method, *arguments, &block) end end

メソッドが定義されていないというのはわかりました。
しかし、具体的にどうコードを書きなおせば良いのかわかりません。

コントローラー内容

class BoardMessagesController < ApplicationController before_action :set_board_message, only: [:show, :edit, :update, :destroy] before_action :authenticate_account! layout 'board_message' # GET /board_messages # GET /board_messages.json def index @board_messages = BoardMessage.page(params[:page]).order('created_at desc') users = BoardUser.where('account_id == ?', current_account.id)[0] if users == nil then user = BoardUser.new user.account_id = current_accunt.id user.nickname = '<<no name>>' user.save users = BoardUser.where 'account_id == ?', current_account.id end @board_user = users @board_message = BoardMessage.new @board_message.board_user_id = @board_user_id end # GET /board_messages/1 # GET /board_messages/1.json def show redirect_to '/board_messages' end # GET /board_messages/new def new redirect_to '/board_messages' end # GET /board_messages/1/edit def edit redirect_to '/board_messages' end # POST /board_messages # POST /board_messages.json def create @board_message = BoardMessage.page(params[:page]).order('created_at desc') @board_message = BoardMessage.new(board_message_params) @board_user = BoardUser.where('account_id == ?', current_account.id)[0] respond_to do |format| if @board_message.save format.html { redirect_to '/board_messages' } format.json { render :show, status: :created, location: @board_message } else format.html { render :index } format.json { render json: @board_message.errors, status: :unprocessable_entity } end end end # PATCH/PUT /board_messages/1 # PATCH/PUT /board_messages/1.json def update redirect_to '/board_messages' end # DELETE /board_messages/1 # DELETE /board_messages/1.json def destroy redirect_to '/board_messages' end private # Use callbacks to share common setup or constraints between actions. def set_board_message @board_message = BoardMessage.find(params[:id]) end # Only allow a list of trusted parameters through. def board_message_params params.require(:board_message).permit(:content, :board_user_id) end end

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

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

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

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

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

guest

回答1

0

ベストアンサー

class BoardMessagesController < ApplicationController before_action :set_board_message, only: [:show, :edit, :update, :destroy] before_action :authenticate_account!

とありますが

controllerのなかに
authenticate_account!が定義されていない気がします

投稿2020/08/27 04:37

naokit-dev

総合スコア424

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問