Ant*_*nAL 11 symbols model ruby-on-rails
我正在实现一个方法,它将在项目的许多地方使用.
def do association
end
Run Code Online (Sandbox Code Playgroud)
"关联"是一个符号,例如:articles,:tags,:users等.
当关联时:articles,我需要使用Article模型.
当关联时:users,我需要使用User模型.
等等.
我知道,我可以编写一个辅助方法,它返回模型类,具体取决于提供的符号.但是有一个现成的方法吗?
Har*_*tty 27
Rails 为此目的提供了一个classify在String类上调用的方法.
:users.to_s.classify.constantize
#User
:line_items.to_s.classify.constantize
#LineItem
Run Code Online (Sandbox Code Playgroud)
编辑:
如果您尝试检索与关联关联的类,请使用以下方法:
Author.reflect_on_association(:books).klass
# => Book
Run Code Online (Sandbox Code Playgroud)
这将解决关联名称与类名称不匹配的情况.
例如:
class Order
has_many :line_items
has_many :active_line_items, :class_name => "LineItem",
:conditions => {:deleted => false}
end
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,:active_line_items将导致ActiveLineItem我们的原始代码将抛出错误.
在这里阅读更多相关信息.
| 归档时间: |
|
| 查看次数: |
4962 次 |
| 最近记录: |