复杂的sinatra参数

时间:2014-11-29 01:30:09

标签: javascript jquery forms sinatra erb

Javascript模板

  <script type="text/x-jsrender" id="questionTmpl">
    <li class="question">
      <input type="text" name="survey[question]" />
      <button class="add_answer">Add Answer</button>
      <ul></ul>
    </li>
  </script>

  <script type="text/x-jsrender" id="answerTmpl">
    <li class="answer">
      <input type="text" name="survey[answer]" />
    </li>
  </script>

Jquery的

 $(document).ready(function () {

  $("#add_question").click(function(e) {
    e.preventDefault();
    $("#questionForm ol").append($.templates("#questionTmpl").render())
  });


  $("#questionForm").on('click', '.add_answer', function(e) {
    e.preventDefault();
    console.log()
    $(this).parent().find("ul").append($.templates("#answerTmpl").render())
  });
});

ERB

<div class="container">
  <br>

  <form action="/surveys" method="post" id="questionForm">
    <input type="text" name="title" placeholder="survey name">
    <button id="add_question"> Add a question </button>
    <ol></ol>
    <input type="submit" value="create" id="submit_form">
  </form>

</div>

我正在sinatra做一个调查申请。我目前设置的方式是使用jsrender,渲染模板来添加问题和添加答案。我的问题是关于javascript模板中输入文本字段的名称。基本上我想知道是否有办法设置参数名称,以便sinatra将它们全部作为哈希收集,使用调查[问题]作为关键字,并将调查[答案]参数数组作为数组所述密钥的值。

1 个答案:

答案 0 :(得分:1)

如果您发布表单,那么Sinatra会自动从变量params中获取帖子中的所有值。

试试这个,你应该看看发生了什么:

get '/surveys' do
  puts params.inspect
end