Javascript 将html输入到rails函数中

Javascript 将html输入到rails函数中,javascript,ruby-on-rails-3,Javascript,Ruby On Rails 3,我有一段html,如下所示: <div class="row well"> <form method="POST"> <ol id="velArea"> <li> Layer velocity: (m/s) <input type="text" name="source[]"> </li> </ol> <input t

我有一段html,如下所示:

    <div class="row well">
      <form method="POST">
        <ol id="velArea">
          <li>  Layer velocity: (m/s) <input type="text" name="source[]"> </li>
        </ol>
        <input type="button" value="Add another layer" name="velocity" onClick="addVel('velArea');">
      </form>
    </div>
params[:velocities][:velocity]
params[:velocities][:source]
<input type="text" name="velocities[velocity]" id="velocities_velocity" value="">
<input type="text" name="velocities[source]" id="velocities_source" value="">
我得到的输出是

    NilClass
    Hi
所以我显然没有正确地传递论点。我猜当我使用按钮时,我需要在post方法中传递速度数组,但不知道如何做


另外,我需要输入的值,而不是任何面向数据库的内容,因此我无法使用activeRecord属性进行查找。

在rails控制器中,当javascript将表单提交到您需要的任何方法时,您应该能够访问
参数[:model_name]
。您还可以访问
params[:id]
params[:firstname]

我也有点不明白你在做什么

它没有name属性,模型需要该属性来标识它并将其值与列关联。这也不是正确的输入方式


更接近您想要的

我不知道为什么您的代码如此复杂。但基本上有一些东西,不是铁路摇摆。首先,你应该看一看。如果您正在使用约定,您将收到如下的params散列:

    <div class="row well">
      <form method="POST">
        <ol id="velArea">
          <li>  Layer velocity: (m/s) <input type="text" name="source[]"> </li>
        </ol>
        <input type="button" value="Add another layer" name="velocity" onClick="addVel('velArea');">
      </form>
    </div>
params[:velocities][:velocity]
params[:velocities][:source]
<input type="text" name="velocities[velocity]" id="velocities_velocity" value="">
<input type="text" name="velocities[source]" id="velocities_source" value="">
表单标签如下所示:

    <div class="row well">
      <form method="POST">
        <ol id="velArea">
          <li>  Layer velocity: (m/s) <input type="text" name="source[]"> </li>
        </ol>
        <input type="button" value="Add another layer" name="velocity" onClick="addVel('velArea');">
      </form>
    </div>
params[:velocities][:velocity]
params[:velocities][:source]
<input type="text" name="velocities[velocity]" id="velocities_velocity" value="">
<input type="text" name="velocities[source]" id="velocities_source" value="">
或者在运行Rails应用程序时查看日志


请重新检查按钮和输入字段的名称属性。它们的名称属性都是“速度”。如果按钮是提交的后一个按钮,则参数[:velocity]的值肯定为空…

谢谢!但我仍然不知道如何传递这些论点。我在问题中添加了更多信息。尝试使用params[:name],但我做错了一些事情。这里有一些基本原理您没有掌握,但请不要气馁!当您将
params[:velocity]
指定给
vel
时,您正在传递velocity参数的值,这意味着输入中键入的内容。您没有传递关于velocity输入元素本身的任何其他信息,因此当您尝试访问vel.class时,它当然会返回nil。但是,当您键入
put-vel
时会发生什么情况?我试图使用helpers,但字段与数据库无关,我就是不知道如何在它们上使用rails。例如,在嵌套表单示例中,有关于如何添加新表单的信息。但只有在创建数据库中的新项时。我无法用rails来解决更复杂的情况,所以我使用了javascript。问题是,我必须能够添加或删除部分表单。基本上我需要的是:用户必须加载大量文件,并给出一些速度。我必须在ruby函数中使用这些信息,这将调用服务器上的C函数。我用js做了表单,用ruby做了函数,但是我不知道如何调用函数。好吧,也许这个Railscast有帮助。。。我不确定这是不是免费的。。。无论如何,railscasts.com是一个查找基本Rails内容的好地方。