轨道上的红宝石 - 如何将符号传递给实例的属性?



如何将符号参数传递给实例的属性?

<%= 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?.有什么线索吗?

在这种情况下,您希望在知道方法的名称时执行该方法,以便Object#send是您想要的。 send按其名称运行方法。

@user.send(symbol).exists?

请注意,这可以访问该对象上的所有方法。 这会有什么作用?

image_input_and_display(f, :destroy, '1140 x 104 pixels')

答案是什么?非常糟糕的事情。看起来好像它只是在访问一个属性,但它可能在引擎盖下做一些你没想到的事情。只是要小心:)

不确定我是否确切地理解您在问什么,但这听起来像是一个动态方法调用。 对象实现发送。 你可以打电话给@user.send(symbol)

相关内容

  • 没有找到相关文章

最新更新