Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 包含模块的元编程_Ruby On Rails_Ruby_Ruby On Rails 3.1_Metaprogramming - Fatal编程技术网

Ruby on rails 包含模块的元编程

Ruby on rails 包含模块的元编程,ruby-on-rails,ruby,ruby-on-rails-3.1,metaprogramming,Ruby On Rails,Ruby,Ruby On Rails 3.1,Metaprogramming,我正在使用RubyonRails,目前我已经有了代码 if level == "Grad" include Grad else include Undergrad 其中level是表示“Grad”或“Undergrad”的字符串 我想使用元编程来包含正确的模块,而不使用if语句 像这样的 send :include, level 我该怎么做呢。最好的方法是什么?包括“#{level}”.constantize。这对你有用吗?包括“#{level}”.constantize。这对你有用

我正在使用RubyonRails,目前我已经有了代码

if level == "Grad"
  include Grad
else
  include Undergrad
其中level是表示“Grad”或“Undergrad”的字符串

我想使用元编程来包含正确的模块,而不使用if语句

像这样的

send :include, level

我该怎么做呢。最好的方法是什么?

包括“#{level}”.constantize
。这对你有用吗?

包括“#{level}”.constantize
。这对你有用吗?

很好,但是从你的回答中我只是把它简化为包含level。constantizeI的意思是,当你可以只使用level时,为什么你需要“#{level}”呢?很好,但是从你的回答中,我只是把它简化为包含level。constantizeI的意思是,当你可以只使用level时,为什么你需要“#{level}”呢