Ruby on rails 错误的参数类型类(应为模块)
我不熟悉rails。我的lib目录中有一个类,我正试图在控制器操作中创建该类的对象。这在加载视图时引发了一个错误,错误消息::“错误的参数类型类(预期模块)”。但是,如果我将我的类嵌入到一个模块中(lib目录中的同一个类),并创建一个类似module::classname.new的对象,它不会给我任何错误。这是否意味着lib目录中的所有类都必须嵌入到一个模块中 我的代码: 控制器代码:Ruby on rails 错误的参数类型类(应为模块),ruby-on-rails,class,model-view-controller,module,Ruby On Rails,Class,Model View Controller,Module,我不熟悉rails。我的lib目录中有一个类,我正试图在控制器操作中创建该类的对象。这在加载视图时引发了一个错误,错误消息::“错误的参数类型类(预期模块)”。但是,如果我将我的类嵌入到一个模块中(lib目录中的同一个类),并创建一个类似module::classname.new的对象,它不会给我任何错误。这是否意味着lib目录中的所有类都必须嵌入到一个模块中 我的代码: 控制器代码: require 'names_helper' class NamesController < Appl
require 'names_helper'
class NamesController < ApplicationController
def receive_names
if request.post?
NamesHelper.new.func()
else
puts "inside get"
end
end
end
首先在你的问题上
这是否意味着lib目录中的所有类都必须嵌入到模块中?
-不,这不是必需的
您解释的代码应该可以正常工作,除非存在名称冲突。已经将NamesHelper
定义为模块(内置Rails或在应用程序中定义)。请确保这一点
我猜这里也有类似的问题如果你发布了相关的代码,这将对你的案例有很大帮助(你是如何尝试实例化你的类的,以及你试图实例化第一个类的类是如何知道第一个类的——也就是说,你是否
需要这个类?)。如果你发布代码,那么你就不会让人们浪费时间猜测。你还有NameHelper模块吗?(如果您使用其中一个生成器,Rails会为您创建这个)是的,我将我的类的名称更改为其他名称,并且成功了。谢谢
class NamesHelper
def func
end
end