Я работаю над API, который принимает конкретные данные, создает PDF-файл и отправляет его по электронной почте, используя rails 5. После настройки маршрутов / контроллеров / модели я продолжаю получать ActionController::RoutingError (uninitialized constant InfluencerreportsController).
IЯ занимался серфингом в Интернете, пытаясь найти решение, и хотя есть много других с такой же ошибкой, ни одно из их решений не сработало для меня.Насколько я могу судить, ошибка означает, что мои имена файлов и контроллер не совпадают, но опечаток нигде нет.Мне известно об ошибке «1004», но я попытался сменить контроллер на это имя, но ничего не получилось.Возможно, мне придется изменить его и в других местах?
Еще одна вещь, о которой стоит упомянуть, это то, что я использовал rails generate для всего (контроллеров, моделей и миграций), поэтому я сам не создавал никаких файлов..
Это мой первый раз, когда я имею дело с nested_attributes
, поэтому я не уверен, правильно ли я это сделал или это могло вызвать проблему.
Заранее спасибо!
Вот мой каталог проекта:
Я не могу публиковать изображения из-за отсутствия репутации, но имя моего контроллера - influencer_reports_controller.rb
influenr_reports_controller.rb:
class InfluencerReportsController < ApplicationController
def create
@report = InfluencerReport.create!(influencerreport_params)
json_response(@report, :created)
end
private
def influencerreport_params
params.require(:influencerreport).permit(:instagram_handle,
:email,
:city,
:post_price_by_category,
:post_price_by_category_engagements,
:post_price_by_avg_engagements,
photos_attributes: [
:industry,
:likes,
:comments
])
end
end
influenr_report_model.rb:
class InfluencerReport < ApplicationRecord
# model assocation
has_many :photos, inverse_of: :influencerreport
# validations
validates_presence_of :instagram_handle,
:email,
:city,
:post_price_by_category,
:post_price_by_category_engagements,
:post_price_by_avg_engagements
accepts_nested_attributes_for :photos
end
rout.rb:
Rails.application.routes.draw do
# For details on the DSL available within this file, see
http://guides.rubyonrails.org/routing.html
resources :influencerreports, only: [:create] do
resources :photos, only: [:create]
end
end
сообщение об ошибке:
Started POST "/influencerreports" for 127.0.0.1 at 2018-12-29 06:03:07 -0600
ActionController::RoutingError (uninitialized constant InfluencerreportsController):
activesupport (5.0.7.1) lib/active_support/inflector/methods.rb:268:in `const_get'
activesupport (5.0.7.1) lib/active_support/inflector/methods.rb:268:in `block in constantize'
activesupport (5.0.7.1) lib/active_support/inflector/methods.rb:266:in `each'
activesupport (5.0.7.1) lib/active_support/inflector/methods.rb:266:in `inject'
activesupport (5.0.7.1) lib/active_support/inflector/methods.rb:266:in `constantize'
actionpack (5.0.7.1) lib/action_dispatch/http/request.rb:81:in `controller_class'
actionpack (5.0.7.1) lib/action_dispatch/routing/route_set.rb:44:in `controller'
actionpack (5.0.7.1) lib/action_dispatch/routing/route_set.rb:30:in `serve'
actionpack (5.0.7.1) lib/action_dispatch/journey/router.rb:39:in `block in serve'
actionpack (5.0.7.1) lib/action_dispatch/journey/router.rb:26:in `each'
actionpack (5.0.7.1) lib/action_dispatch/journey/router.rb:26:in `serve'
actionpack (5.0.7.1) lib/action_dispatch/routing/route_set.rb:727:in `call'
rack (2.0.6) lib/rack/etag.rb:25:in `call'
rack (2.0.6) lib/rack/conditional_get.rb:38:in `call'
rack (2.0.6) lib/rack/head.rb:12:in `call'
activerecord (5.0.7.1) lib/active_record/migration.rb:553:in `call'
Существует еще одно сообщение об ошибке, но я чувствовал, что нет необходимости отправлять сообщения.