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

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

ただいまの
回答率

90.34%

  • Ruby on Rails

    7666questions

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

  • API

    1603questions

    APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

  • POST

    240questions

    POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

  • Cisco

    100questions

    シスコ(Cisco Systems,Inc.)は、アメリカ合衆国に本社を置く、世界最大のコンピュータネットワーク機器開発会社及び同社の製品

RailsでLoadErrorのUnable to autoload constant ''が出てきます

受付中

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 714

kozica

score 41

railsを起動しcisco merakiのダッシュボードからScanning APIのPOSTs URLを追加しようとURLを入れてrails側にGETリクエストを送り、それに対しRailsがValidatorの値をPOSTで送り返したところ、下記のエラーメッセージが出てきました。
app/models/personal_log.rbに問題があるようなのですが、ここには何も記述してなく原因がわからずどうアプローチしていいのかわかりません。

どうかお力を貸して頂きたいです。

Started POST "/personal_logs" for 127.0.0.1 at 2018-07-26 11:16:39 +0900
   (0.2ms)  SET NAMES utf8,  @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'),  @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483

LoadError (Unable to autoload constant PersonalLog, expected /home/kkawahara/workspace/working/webex/app/models/personal_log.rb to define it):

activesupport (5.2.0) lib/active_support/dependencies.rb:503:in `load_missing_constant'
bootsnap (1.3.1) lib/bootsnap/load_path_cache/core_ext/active_support.rb:43:in `load_missing_constant'
activesupport (5.2.0) lib/active_support/dependencies.rb:193:in `const_missing'
activesupport (5.2.0) lib/active_support/inflector/methods.rb:283:in `const_get'
activesupport (5.2.0) lib/active_support/inflector/methods.rb:283:in `block in constantize'
activesupport (5.2.0) lib/active_support/inflector/methods.rb:281:in `each'
activesupport (5.2.0) lib/active_support/inflector/methods.rb:281:in `inject'
activesupport (5.2.0) lib/active_support/inflector/methods.rb:281:in `constantize'
activesupport (5.2.0) lib/active_support/inflector/methods.rb:326:in `safe_constantize'
activesupport (5.2.0) lib/active_support/core_ext/string/inflections.rb:79:in `safe_constantize'
actionpack (5.2.0) lib/action_controller/metal/params_wrapper.rb:157:in `_default_wrap_model'
actionpack (5.2.0) lib/action_controller/metal/params_wrapper.rb:96:in `block in model'
/home/kkawahara/.rbenv/versions/2.5.1/lib/ruby/2.5.0/mutex_m.rb:71:in `synchronize'
/home/kkawahara/.rbenv/versions/2.5.1/lib/ruby/2.5.0/mutex_m.rb:71:in `mu_synchronize'
actionpack (5.2.0) lib/action_controller/metal/params_wrapper.rb:96:in `model'
actionpack (5.2.0) lib/action_controller/metal/params_wrapper.rb:131:in `name'
actionpack (5.2.0) lib/action_controller/metal/params_wrapper.rb:263:in `_wrapper_key'
actionpack (5.2.0) lib/action_controller/metal/params_wrapper.rb:290:in `_wrapper_enabled?'
actionpack (5.2.0) lib/action_controller/metal/params_wrapper.rb:244:in `process_action'
activerecord (5.2.0) lib/active_record/railties/controller_runtime.rb:24:in `process_action'
actionpack (5.2.0) lib/abstract_controller/base.rb:134:in `process'
actionview (5.2.0) lib/action_view/rendering.rb:32:in `process'
actionpack (5.2.0) lib/action_controller/metal.rb:191:in `dispatch'
actionpack (5.2.0) lib/action_controller/metal.rb:252:in `dispatch'
actionpack (5.2.0) lib/action_dispatch/routing/route_set.rb:52:in `dispatch'
actionpack (5.2.0) lib/action_dispatch/routing/route_set.rb:34:in `serve'
actionpack (5.2.0) lib/action_dispatch/journey/router.rb:52:in `block in serve'
actionpack (5.2.0) lib/action_dispatch/journey/router.rb:35:in `each'
actionpack (5.2.0) lib/action_dispatch/journey/router.rb:35:in `serve'
actionpack (5.2.0) lib/action_dispatch/routing/route_set.rb:840:in `call'
rack (2.0.5) lib/rack/tempfile_reaper.rb:15:in `call'
rack (2.0.5) lib/rack/etag.rb:25:in `call'
rack (2.0.5) lib/rack/conditional_get.rb:38:in `call'
rack (2.0.5) lib/rack/head.rb:12:in `call'
actionpack (5.2.0) lib/action_dispatch/http/content_security_policy.rb:18:in `call'
rack (2.0.5) lib/rack/session/abstract/id.rb:232:in `context'
rack (2.0.5) lib/rack/session/abstract/id.rb:226:in `call'
actionpack (5.2.0) lib/action_dispatch/middleware/cookies.rb:670:in `call'
activerecord (5.2.0) lib/active_record/migration.rb:559:in `call'
actionpack (5.2.0) lib/action_dispatch/middleware/callbacks.rb:28:in `block in call'
activesupport (5.2.0) lib/active_support/callbacks.rb:98:in `run_callbacks'
actionpack (5.2.0) lib/action_dispatch/middleware/callbacks.rb:26:in `call'
actionpack (5.2.0) lib/action_dispatch/middleware/executor.rb:14:in `call'
actionpack (5.2.0) lib/action_dispatch/middleware/debug_exceptions.rb:61:in `call'
web-console (3.6.2) lib/web_console/middleware.rb:135:in `call_app'
web-console (3.6.2) lib/web_console/middleware.rb:30:in `block in call'
web-console (3.6.2) lib/web_console/middleware.rb:20:in `catch'
web-console (3.6.2) lib/web_console/middleware.rb:20:in `call'
actionpack (5.2.0) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
railties (5.2.0) lib/rails/rack/logger.rb:38:in `call_app'
railties (5.2.0) lib/rails/rack/logger.rb:26:in `block in call'
activesupport (5.2.0) lib/active_support/tagged_logging.rb:71:in `block in tagged'
activesupport (5.2.0) lib/active_support/tagged_logging.rb:28:in `tagged'
activesupport (5.2.0) lib/active_support/tagged_logging.rb:71:in `tagged'
railties (5.2.0) lib/rails/rack/logger.rb:26:in `call'
sprockets-rails (3.2.1) lib/sprockets/rails/quiet_assets.rb:13:in `call'
actionpack (5.2.0) lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
actionpack (5.2.0) lib/action_dispatch/middleware/request_id.rb:27:in `call'
rack (2.0.5) lib/rack/method_override.rb:22:in `call'
rack (2.0.5) lib/rack/runtime.rb:22:in `call'
activesupport (5.2.0) lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'
actionpack (5.2.0) lib/action_dispatch/middleware/executor.rb:14:in `call'
actionpack (5.2.0) lib/action_dispatch/middleware/static.rb:127:in `call'
rack (2.0.5) lib/rack/sendfile.rb:111:in `call'
railties (5.2.0) lib/rails/engine.rb:524:in `call'
puma (3.11.4) lib/puma/configuration.rb:225:in `call'
puma (3.11.4) lib/puma/server.rb:632:in `handle_request'
puma (3.11.4) lib/puma/server.rb:446:in `process_client'
puma (3.11.4) lib/puma/server.rb:306:in `block in run'
puma (3.11.4) lib/puma/thread_pool.rb:120:in `block in spawn_thread'
#app/controllers/personal_logs_controller.rb
MERAKI_VALIDATOR='xxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
MERAKI_SECRET = 'xxxxxxxxxx'


class PersonalLogsController < ApplicationController
  skip_before_action :verify_authenticity_token
  before_action :set_personal_log, only: [:show, :edit, :update, :destroy]

  def presenceapi
    validator = {
                 "version":"2.0",
                 "validator":"66c06e9ac54b52f34f434074fbb1270d96344702",
                 "secret":"nkqveg52"
                 }
    if request.post?
      map = JSON.parse(params[:data]).with_indifferent_access
      if map[:secret] == MERAKI_SECRET
        map[:probing].each do |p|
          Presence.create(ap_mac: p[:ap_mac], client_mac: p[:client_mac],
                          last_seen: DateTime.parse(p[:last_seen]),
                          rssi: p[:rssi])
        end
        render :text => '' and return
      else
        Rails::logger.warn("*** MERAKI req with bad secret '#{map[:secret]}'")
        rails 'access denied'
      end
    else
      render :plain => MERAKI_VALIDATOR
    end
  end
end
#config/routes.rb
Rails.application.routes.draw do
  match 'personal_logs', :to => 'personal_logs#presenceapi', :as => :personal_logs, :via => [:get, :post]
end
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

0

app/models/personal_log.rbに問題があるようなのですが、ここには何も記述してなく原因がわからずどうアプローチしていいのかわかりません。

app/models/personal_log.rbに問題があるのではなく、PersonalLogクラスをロードしようとして、このファイルで定義されていることを期待してロードしようとしたけど失敗したことを意味しています。
PersonalLogを定義したapp/models/personal_log.rbファイルが必要です。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 90.34%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • Ruby on Rails

    7666questions

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

  • API

    1603questions

    APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

  • POST

    240questions

    POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

  • Cisco

    100questions

    シスコ(Cisco Systems,Inc.)は、アメリカ合衆国に本社を置く、世界最大のコンピュータネットワーク機器開発会社及び同社の製品