如何将符号参数传递给实例的属性?
<%= image_input_and_display(f, :footer, '1140 x 104 pixels') %>
def image_input_and_display(f, symbol, hint)
f.input symbol, hint: hint
if @user.symbol.exists?
...
end
end
我正在尝试运行该函数,在本例中为if @user.footer.exists?
。有线索吗?
答案 0 :(得分:2)
在这种情况下,您希望在知道它的名称后执行一个方法,这样Object#send
就是您想要的。 send
以其名称运行方法。
@user.send(symbol).exists?
请注意,这可以访问该对象上的所有方法。这会怎么做?
image_input_and_display(f, :destroy, '1140 x 104 pixels')
答案是什么?非常糟糕的事情。它看起来好像只是访问一个房产,但它可能正在做一些你没想到的事情。小心:)
答案 1 :(得分:1)
不确定我到底知道你在问什么,但这听起来像是一个动态的方法调用。 Object implements send。您可以拨打@user.send(symbol)
。