Ruby 在 slim 文件中 Javascript 中的页面加载时运行

Ruby runs on page load in Javascript in slim file

基本上我想渲染这个部分并在有人单击按钮时构建一个对象。

我遇到的问题是,在页面加载时,“@node.logical_ports.new”部分实际上是 运行,我不希望它 运行 直到事件发生触发。

javascript:
  $(function(){
    $('body').on('click', '.add', function(){
      $(this).html("#{escape_javascript(render 'logical_port_form', logical_port: @node.logical_ports.new)}");
    });
  });

那是不可能的,您不能通过网络将 Ruby 发送到客户端,以便稍后成为 运行。 Ruby 在客户端收到任何东西之前在服务器端执行。您需要重新考虑代码的架构方式。