我正在尝试将范围发送到创建即时变量的操作。这是我的尝试:
foo_controller.rb
define_method(:generate_index) do |string, scope|
instance_variable_set( "@#{string}", (string.camelize.constantize).public_send scope )
end
def index
generate_index("foo", "all")
end
在上面的例子中,我们希望创建以下内容:
def index
@foo = Foo.all
end
相反,我收到一条错误说明:
unexpected tSYMBEG, expecting ')'
是否有人可以协助指出我哪里出错了?
由于
答案 0 :(得分:1)
只需添加一些括号。
define_method(:generate_index) do |string, scope|
instance_variable_set( "@#{string}", string.camelize.constantize.public_send(scope))
end