目录:
原型
-app
-assets
-controllers
--- welcome_controller.rb
domainobjects
--- 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:奇怪的是......将我的班级名称改为乔布斯(一个字)就是摆脱了这个错误。这很奇怪!任何人都可以确认这是我的问题吗?
答案 0 :(得分:2)
名称很重要,而且您的文件命名错误。 SimilarJob.rb
需要similar_job.rb
。
同样,您的API
文件应该被称为api.rb
,并且它定义的类应该被称为Api
。这个东西很重要,因为你已经严重偏离了Rails惯例,并且正在为它而痛苦。