rails或者rails的engine中model模块化以及constantize使用

rails engine 命名为dione

models目录结构如下:

models/yancheng1/yancheng2/yancheng.rb

yancheng.rb类文件内容如下:

model Dione
class Yancheng1::Yancheng2::Yancheng
def yan1
......
end
def yan2
......
end
end
end

字符串实体化对象

@demo="Dione::Yancheng1::Yancheng2::Yancheng".constantize
#new一个对象,然后调用方法
@demo.new.yan2

注意:如果手动创建的yancheng1和yancheng2,这些目录的名字必须小写,然后再yancheng.er中写上moudel  engine的名字,然后class Yancheng1::Yancheng2::Yancheng

首字母必须大写,否则在调用constantize方法时会出错。

如果不是在engine中定义而是在rails项目中定义直接按着contatize方法的demo做即可

你可能感兴趣的:(rails或者rails的engine中model模块化以及constantize使用)