按名称获取ActiveRecord的属性

时间:2011-02-18 12:51:23

标签: ruby-on-rails ruby object attributes

我有一部分,将在项目的许多地方使用。

它呈现与指定标签相关的项目,如:

@tag.articles.each do |a|
    # render articles
end

我需要这个部分不仅可以呈现文章,还可以呈现与标签相关的任何其他项目。

因此,此partial有一个参数 association_name ,如下所示:

@tag[association_name].each do |a|
    # render articles
end

我通过以下方式称呼这部分:

# to render articles
render :partial => "items", :locals => {:association_name => "articles"}

# to render videos
render :partial => "items", :locals => {:association_name => "videos"}

# etc.

问题是 - 我不能以某种方式引用Article模型的字段:

@article[association_name]

怎么做以及它为什么不起作用?

1 个答案:

答案 0 :(得分:5)

@article.send(association_name)