前提・実現したいこと
railsでnamespaceを使ってApi::V1::ApiControllerというものを作成しています。
そこからapiでモデルを読み出し、レスポンスを返すようにしようとしています。
発生している問題・エラーメッセージ
エラーとしてはそのController内で、modelを操作しようとすると、自動的に指定したモデルの先頭にApi::V1::が付与されてしまいuninitialize constantエラーが発生します。
(下記はSocial::User.findをした場合)
uninitialized constant Api::V1::Social::User
該当のソースコード
ruby
1#api/v1/api_controller.rb 2class Api::V1::ApiController < ActionController::Api 3 def test 4 user = Social::User.find 1 5 render status:200, json:{name:user.name} 6 end 7end
ruby
1#config/routes.rb 2namespace :api, {format: 'json'} do 3 namespace :v1 do 4 get 'api_test', to: 'api#test' 5 end 6end
ruby
1#social/user.rb 2module Social 3 class User < ApplicationRecord 4 end 5end
試したこと
rails console上ではmodelの操作は問題なくできます。
controller上からの操作でのみ上記のnamespaceが勝手に付与される現象が発生しています。
ruby
1user = Social::User.find 1
補足情報(FW/ツールのバージョンなど)
rails 5.2.0
ruby 2.2.7
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/26 10:22