@instance_variable。“ string”在Ruby方法中无法识别

时间:2018-08-15 18:11:52

标签: ruby

我有以下两种方法:

def index
  invite_maker("invit_one")
end

def invite_maker(invit_number)
  @user = current_user
  if @user.invit_number == nil
    [...]
  end
end

我的问题是Ruby无法识别@user."invit_one",因为它应该是@user.invit_one。如果输入invite_maker(invit_one),则会出现错误。我该如何解决?

2 个答案:

答案 0 :(得分:1)

尝试:

@user.public_send(invit_number) == nil

答案 1 :(得分:0)

我不知道我是否了解您要做什么,但是如果您需要使用自定义字符串在对象上调用公共方法,则需要使用:public_send方法。

@user.public_send(invit_number) 或者,您只能调用:send,这对ANY方法(公共/受保护/私有)有效。

这将调用与字符串内容同名的方法。