Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.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 如何使用;“发送”;或;公共“发送”;对于';型号';RubyonRails中的名称?_Ruby On Rails - Fatal编程技术网

Ruby on rails 如何使用;“发送”;或;公共“发送”;对于';型号';RubyonRails中的名称?

Ruby on rails 如何使用;“发送”;或;公共“发送”;对于';型号';RubyonRails中的名称?,ruby-on-rails,Ruby On Rails,我想用send或public\u send作为型号的名称。 但是当我使用send或public\u send时,我得到以下错误: send("User").all #NoMethodError: undefined method 'User' for main:Object 有办法处理这个问题吗?(即使没有send或public\u send)如果有,请帮我处理。 谢谢send或public\u send仅用于方法调用。如果您想动态更改模型名称,您可以执行smth,如“mo

我想用
send
public\u send
作为
型号的名称。
但是当我使用
send
public\u send
时,我得到以下错误:

send("User").all
#NoMethodError: undefined method 'User' for main:Object
有办法处理这个问题吗?(即使没有
send
public\u send
)如果有,请帮我处理。
谢谢

send
public\u send
仅用于方法调用。如果您想动态更改模型名称,您可以执行smth,如
“model\u name”。constantize。所有
发送
公共发送
仅用于方法调用。如果您想动态更改模型名称,您可以执行smth,如
“model\u name”.constantize.all

如果您想从字符串中获取类名,可以执行以下操作:

Object.const_get("User").all
如果找不到类,这将引发错误:

NameError: uninitialized constant User
如果您想要返回
nil
而不是引发错误的内容,可以尝试:

"User".safe_constantize

您希望从字符串中获取类名,类似这样的操作将起作用:

Object.const_get("User").all
如果找不到类,这将引发错误:

NameError: uninitialized constant User
如果您想要返回
nil
而不是引发错误的内容,可以尝试:

"User".safe_constantize