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