为每个部分提供自己的ID

时间:2016-03-14 11:16:20

标签: jquery ruby-on-rails cocoon-gem

我正在使用Rails中的一个应用程序,它允许通过链接将问题添加到测验中。 (a has_many:通过协会)。到目前为止,我正在用Cocoon gem实现这一点。

插入问题的_form.html.erb如下所示:

<table class = "table">
    <thead>
        <tr>
            <th>Category</th>
            <th>Question</th>
            <th>Answers</th>
            <th></th>
        </tr>
    </thead>
    <tbody id = "question_table">
    </tbody>
</table>

<div id="questions">
<div id="questionno"></div>

    <%= f.fields_for :links do |link| %>
    <% render 'link_fields', f: link %>
    <% end %> 
</div>


<div class="links">
    <div id="button_text">
        <button type="button" class="btn btn-primary">
            <%= link_to_add_association f, :links, :"data-association-insertion-node" => "tbody#question_table", :"data-association-insertion-method" => "append", :class => "button" do %>Add question<% end %>
        </button>
    </div>
</div>

每次调用link_to_add_association时,都会绘制_link_fields.html.erb。这部分包含几个字段。该文件的片段如下所示:

<tr class = "table_row" >

<div class="nested-fields link-fields" >
<div id="question_from_list">



    <td class="col-sm-1">   
        <div class = "field">

            <%= f.select :question_category, options_for_select(Category.all.collect { |category|
            [category.categoryBody.titleize, category.id] }, 1), {}, { id: "categories_select_1" } %>
        </div>
    </td>

我想做的是给每个f.select它自己的id。我做了一些谷歌搜索,似乎在茧中实现这一点的方法是回调。

我正在尝试使用before_insert回调来生成id并获取f.select元素并更改其id。然而,这似乎不起作用。我的代码如下:

资产/ Javascript角/ quizzes.coffee:

$('#questions a.add_fields').data('association-insertion-position', 'before').data 'association-insertion-node', 'this'
$('#questions').on 'cocoon:after-insert', ->
  $(this).children('#categories_select_1').attr 'id', 'newId'
  return

此回调似乎没有做任何事情。我的quizzes.coffee文件中的其他代码运行得非常好,所以我确定文件已加载。

我确信有一些简单的事情我忽略了,但我不确定我哪里出错了。

非常感谢任何帮助。 感谢

0 个答案:

没有答案