如何将ActiveRecord表名转换为模型类名
是否有可能将 ActiveRecord 表名正确转换为模型类名?我发现了一种 hack
def model_for_table(table_name)
table_name.classify.constantize
end
,但由于我们对许多模型使用 set_table_name ,所以这不起作用。有什么办法可以做到吗?
Is there any possibility to properly convert ActiveRecord table name to model class name? I have found one hack
def model_for_table(table_name)
table_name.classify.constantize
end
but since we use set_table_name for many of our models this wont work. Is there any way to do it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我做到了!
这将返回“table_name”=> 形式的哈希值。 “模型_类_名称”。
编辑:更好的版本(仅适用于 Rails 3):
请注意,并非所有模型类都始终加载。要在创建这样的哈希之前加载它们,请执行以下操作:
很好。
I did it!
This returns a hash in the form of "table_name" => "model_class_name".
EDIT: Better version (works with Rails 3 only):
Please note not all your model classes are always loaded. To load them all before creating such a hash do this:
Nice.
虽然这不是世界上最快的事情
It is not the fastest thing in the world though
在 Rails 3 中可以这样做:
Can do like this in rails 3: