【问题标题】:Rails4, Load ActiveRecord Model not workingRails4,加载 ActiveRecord 模型不起作用
【发布时间】:2014-12-08 02:13:27
【问题描述】:

我的 routes.rb 文件是

 namespace(:api){
  resources :open_conversations do
    resources :open_answers, :only => [:index, :create, :destroy]
 end

}

以及 OpenConversation 和 OpenAnswer 控制器文件

class OpenConversation < ActiveRecord::Base
  has_many :open_answers, :dependent => :destroy
end


class OpenAnswer < ActiveRecord::Base
  belongs_to :open_conversation
end

然后我将 OpenConversation 模型加载到 OpenAnswer 控制器中

class Api::OpenAnswersController < Api::ApplicationController

  before_filter :get_conversation

  def get_conversation
    binding.pry
    @con = OpenConversation.find(params[:open_conversation_id])
    @answers = @con.open_answers
  end
end

=============== 这是 IRB 调试日志

[6] 撬(#)> 开启对话

=> Api::OpenConversation

[7] 撬(#)> OpenConversation.find(params[:open_conversation_id])

NameError:未初始化的常量 Api::OpenAnswersController::OpenConversation

来自 (pry):6:in `get_conversation'

[8] 撬(#)> 开启对话

NameError:未初始化的常量 Api::OpenAnswersController::OpenConversation

来自 (pry):7:in `get_conversation'

[9] 撬(#)> OpenConversation.class

NameError: 未初始化的常量 Api::OpenAnswersController::OpenConversation

来自 (pry):8:in `get_conversation'

为什么 OpenConversation 模型加载喜欢 Module?

【问题讨论】:

  • 您的路由文件中是否定义了类(OpenConversation 和 OpenAnswer)?还是您只是将它们放在一起以减少问题中的内容?
  • 这是什么?带有控制器的路由和带有模型的控制器以及{}
  • @argentum47 mymistake.. 路由文件和 sinmply 控制器文件

标签: ruby-on-rails ruby ruby-on-rails-3 activerecord


【解决方案1】:

你能给控制器文件树结构吗?可能是 ApplicationController 继承错误。

class Api::OpenAnswersController < ApplicationController

【讨论】:

  • 正确 "class Api::OpenAnswersController
  • 还有..你知道我完整的控制器文件树结构吗?
猜你喜欢
  • 2013-09-27
  • 1970-01-01
  • 2011-03-23
  • 2020-10-26
  • 1970-01-01
  • 2014-11-06
  • 2020-11-24
  • 1970-01-01
  • 2020-01-19
相关资源
最近更新 更多