如何从视图中动态调用模型对象中的访问器方法

时间:2011-01-24 14:19:55

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

我有一个模特:

class Mymodel < ActiveRecord :: Base

  attr_accessible :the_date, :the_time, :the_event

  def the_date
    ...
  end

  def the_time
    ...
  end

  def the_event
    ...
  end
...
end

我的控制器拥有一组方法名称,由view:

使用
class Mycontroller < ApplicationController

  @methods=['the_date', 'the_time', 'the_event']
  ...
end

在我的视图中 index.html.haml ,我想动态访问模型方法:

%td
  -index=SOME_USER_INPUT
  =mymodel.@methods[index] /IT DOES NOT WORK HERE!!

但是,我无法以这种方式动态调用模型方法:mymodel.@methods[index],如何根据我的示例代码调用动态方法?

1 个答案:

答案 0 :(得分:1)

@methods是控制器的实例变量,而不是您的模型。假设您要调用该方法,请尝试以下方法:

=mymodel.send(@methods[index])