Rails:如何动态构建关联

时间:2012-10-04 02:52:18

标签: ruby-on-rails ruby ruby-on-rails-3

如何动态建立关联?例如:

current_customer.company.association(:tenders).order('created_at DESC')

2 个答案:

答案 0 :(得分:2)

我猜你想要将关联传递给其他方法。您正在寻找的是send(:method_name,* args)

所以它会是

passed_in_association = :tenders
if( [:tenders,:orders,:users].include?(passed_in_association) )  #for security probably better to add it to a before filter.
 current_customer.company.send(passed_in_association).order('created_at DESC')
end

答案 1 :(得分:1)

我不确定你要做什么,但是你可以使用send如果你想使用一个变量来访问一个关联(毕竟它只是另一种方法):

current_customer.company.send(:tenders).order('created_at DESC')