我是铁杆新手。我的lib目录中有一个类,我试图在我的控制器动作中创建该类的对象。当我加载我的视图时,这会给我一个错误,错误消息::“错误的参数类型类(预期的模块)”。但是,如果我将我的类嵌入模块(lib目录中的同一个类)并创建一个类似Module :: classname.new的对象,它不会给我任何错误。这是否意味着lib目录中的所有类都必须嵌入到模块中?
我的代码:
控制器代码:
require 'names_helper'
class NamesController < ApplicationController
def receive_names
if request.post?
NamesHelper.new.func()
else
puts "inside get"
end
end
end
我的names_helper文件代码(此文件是我的lib目录)
class NamesHelper
def func
end
end
答案 0 :(得分:1)
首先关注你的问题,
Does that mean that all the classes in the lib directory have to be embedded inside a module ?
- 不,没必要。
除非存在名称冲突,否则您解释的代码应该可以正常工作。这已经将NamesHelper
定义为一个模块(无论是构建中的Rails还是您在应用中定义的)。请确保这一点。