0

目录:

原型

-应用程序

-资产

-控制器

---welcome_controller.rb

领域对象

---SimilarJob.rb

实用程序

--API.rb

控制器代码

require_relative '../domainobjects/SimilarJob'

class WelcomeController < ApplicationController
 def index
  foo = API.new('DEVKEY')
  res = foo.RetrieveFacts("Test", "Me")

  #newResult = SimilarJob.new("test") <-- Failing Line!!!

  render :text => res["Response"]["IsInternationalResponse"]
 end
end

对象代码

class SimilarJob
end

我去掉了一些东西,但是 API 类存在于一个单独的目录“Utilities”中,出于某种原因,我什至不必使用“requires_relative”关键字来引用它。它是一个包含 HTTParty 的包装类,并且每次都向我的外部 API 发出成功的 GET 请求。有人可以解释为什么我似乎不必在任何地方引用它吗?

或者,每次尝试初始化 SimilarJob 类都会失败。错误是:

uninitialized constant WelcomeController::SimilarJob

根据我在这里和网络上的研究,这意味着我没有正确引用该文件。为了测试这一点,我尝试在“requires_relative”语句中错误地命名它,框架通知我无法加载请求的文件。所以看起来 Rails 正在寻找我的课程,只是由于某种原因它不会初始化它。

最让人抓狂的是,我会对 SimilarJob 做一些小改动,重启我的服务器,它就会一下子工作起来。如果我停止并再次启动服务器,它会回到我在下面粘贴的错误。

这是我第一次真正挖掘 .NET MVC 或 KnockoutJS 以外的东西。你们介意指出我的方法的错误吗?

编辑:我为此控制器使用了 generate 命令,因此所有视图和路由都可以正常工作。事实上,如果我注释掉有问题的行,我在 JSON 响应的最后一行引用的属性会很好地呈现给文件。

编辑v2:奇怪的是..将我的班级名称更改为乔布斯(一个字)正在摆脱这个错误。这很奇怪!谁能确认这是我的问题?

4

1 回答 1

2

名称很重要,而且您的文件命名错误。SimilarJob.rb需要similar_job.rb

同样,您的API文件应该被调用api.rb,并且它定义的类应该被调用Api。这些东西很重要,因为您严重偏离了 Rails 约定,并且正在为此受苦。

于 2013-08-22T21:01:32.680 回答