Rails - 通过send()和index访问模型信息之间的区别

时间:2015-02-27 21:49:34

标签: ruby-on-rails

我有一个模型M,它有一个C列。在我的项目中的某一点,我有一个特定的M实例存储在内存中,m。我也有字符串" c",我发现这两行都做同样的事情(据我所知):

m.send("c")
m["c"]

有区别吗?有没有理由使用其中一个?

P.S。 - 如果你能想出更好的头衔,请发表评论,我很难做出合适的头衔。

1 个答案:

答案 0 :(得分:1)

你应该使用:

m.c

m["c"]m.attributes['c']的快捷方式。

当您需要构造方法名称以动态调用时,使用

m.send("c")

index_type = "chapter"
m.send("open_to_#{index_type}", 1) # calls m.open_to_chapter(1)