分配关联记录而不使用 Eval (Rails 2.x)
我的代码看起来像这个
# record[field_name] = get_children(field_name)
eval "record.#{field_name} = get_children(field_name)"
record
是一个 ActiveRecord
子类,并且相关字段是一个 has_a
关系。注释行不起作用(尽管看起来有效,但分配并未发生)。
如果没有eval
,我该如何做到这一点?
My code looks like this
# record[field_name] = get_children(field_name)
eval "record.#{field_name} = get_children(field_name)"
record
is an ActiveRecord
subclass, and the field in question is a has_a
relationship. The commented line does not work (though it seems to, but the assign does not take place).
How can I do this without eval
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
可能有一种更 Railsy 的方法来做到这一点,但至少您可以通过使用
send
消除eval
(来自 Object),所有 Object 实例都具有:There may be a more Railsy way to do this, but at least you can eliminate the
eval
by usingsend
(from Object), which all Object instances have: