【问题标题】:Rail unable to autoload controllerRail 无法自动加载控制器
【发布时间】:2015-03-09 20:21:25
【问题描述】:

尝试在我的 rails 应用程序中创建新的 user_subscription 时出现以下错误。

无法自动加载常量 UserSubscriptionsController,需要 /Users/antarrbyrd/dev/rail-app/app/controllers/user_subscriptions_controller.rb 来定义它

app/controllers/user_subscriptions_controller.b

class UserSubsciptionController < ApplicationController
  def create
    user_id = params[:user_id]
    app_id = params[:app_id]
    UserSubsciption.find_or_create_by(user_id: user_id, app_id: app_id)
    redirect_to root_path
  end
end

config/routes.rb

  get 'user_subcriptions/create/:user_id/:app_id', to: 'user_subscriptions#create', as: 'create_subscription'

app/models/user_subscription.rb

class UserSubscription < ActiveRecord::Base
  belongs_to :user
  belongs_to :app
end

app/view/apps/_full.html.erb

<h5>
  <%= link_to 'Watch this app', create_subscription_path(session[:user_id], app.id) %>
</h5>

局部变量

局部变量

from_mod  Object
const_name  :UserSubscriptionsController
qualified_name  "UserSubscriptionsController"
path_suffix "user_subscriptions_controller"
file_path "/Users/antarrbyrd/dev/.../app/controllers/user_subscriptions_controller.rb"
expanded "/Users/antarrbyrd/dev/.../app/controllers/user_subscriptions_controller"
mod  nil
parent  nil
e nil

【问题讨论】:

  • 查看它尝试加载的控制器的名称,以及您拥有的控制器类的名称,您将看到错误。 :)
  • ^ 您在类定义中拼错了 SubscriptionController。

标签: ruby-on-rails ruby ruby-on-rails-4.1


【解决方案1】:

在文件 app/controllers/user_subscriptions_controller.b 中将类 UserSubscriptionsController 重命名为 UserSubsciptionsController

【讨论】:

  • 现在抛出错误raise "Circular dependency detected while autoloading constant #{qualified_name}"
  • 实际上也少了一个 r UserSubscriptionsController
猜你喜欢
  • 1970-01-01
  • 2013-06-15
  • 2014-05-11
  • 2016-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多