从符号获取模型类
我正在实现一种方法,该方法将在项目的许多地方使用。
def do association
end
“association”是一个符号,如:articles
、:tags
、:users
等。
当关联为:articles
时code>,我需要使用 Article 模型。
当关联为 :users
时,我需要使用 User 模型。
等等。
我知道,我可以编写一个辅助方法,根据提供的符号返回模型类。但是有没有现成的方法呢?
I'm implementing a method, that will be used in many places of a project.
def do association
end
"association" is a symbol, like :articles
, :tags
, :users
etc.
When the association is :articles
, I need to work with the Article model.
When the association is :users
, I need to work with the User model.
Etc.
I know, that I can write a helper method, that returns model class, depending on the provided symbol. But is there a ready to use method for that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
为此,Rails 在
String
类上提供了一个名为classify
的方法。编辑:
如果您尝试检索与关联关联的类,请使用此方法:
这将解决关联名称与类名称不匹配的情况。
例如:
在上面的示例中,
:active_line_items
将导致ActiveLineItem
并且我们的原始代码将抛出错误。请在此处了解更多相关信息。
Rails provides a method called
classify
on theString
class for such purpose.Edit:
If you are trying to retrieve the class associated with an association, use this approach:
This will address the scenario where the association name doesn't match the class name.
E.g:
In the example above,
:active_line_items
will result inActiveLineItem
and our original code will throw error.Read more about this here.
这会起作用
并以你的例子为例
This will work
And with your example