附加Rails标签与js与计数器

Append Rails tag with js with counter

本文关键字:js 计数器 标签 Rails 附加      更新时间:2023-09-26

尝试为不同的报表创建合并工具,并希望允许合并多个报表。被卡在这里:

<div class="row">
                <div class="col-md-6">
                    <%= form_tag(merge_reports_path, method: :put) do %>
                    <div class="form-group">
                        <%= select_tag(:report_1, options_from_collection_for_select(current_user.reports,"id", "name"), class: "form-control" ) %>  
                    </div>
                    <a class="add-one">Add 1+</a>
                    <div class="form-group">
                        <%= select_tag(:to_merge_report, options_from_collection_for_select(current_user.reports,"id", "name"), class: "form-control" ) %>
                    </div>

                    <% end %>
                </div>
            </div>
            <script>
                var counter = 1
                $(".add-one").click(function(){
                    counter ++;
                    $(this).prepend('<div class="form-group"> <%= j select_tag(:report_' + counter + ' , options_from_collection_for_select(current_user.reports,"id", "name"), class: "form-control" ) %> </div> ')
                })
            </script>

得到这个错误:

/Users/mmahalwy/Desktop/Code/dossiyadata/app/views/reports/index.html.erb:35: syntax error, unexpected tSTRING_BEG, expecting ')' ...append=( j select_tag(:report_' + counter + ' , options_from... ... ^ /Users/mmahalwy/Desktop/Code/dossiyadata/app/views/reports/index.html.erb:35: syntax error, unexpected ',', expecting ')' ...t_tag(:report_' + counter + ' , options_from_collection_for_... ... ^ /Users/mmahalwy/Desktop/Code/dossiyadata/app/views/reports/index.html.erb:35: syntax error, unexpected ',', expecting ')' ...ent_user.reports,"id", "name"), class: "form-control" ) );@o... ... ^ /Users/mmahalwy/Desktop/Code/dossiyadata/app/views/reports/index.html.erb:35: syntax error, unexpected ')', expecting keyword_end ...me"), class: "form-control" ) );@output_buffer.safe_append='... ... ^ /Users/mmahalwy/Desktop/Code/dossiyadata/app/views/reports/index.html.erb:65: syntax error, unexpected keyword_do_block, expecting keyword_end '; @reports.each do |report| ^ /Users/mmahalwy/Desktop/Code/dossiyadata/app/views/reports/index.html.erb:97: syntax error, unexpected keyword_ensure, expecting end-of-input

代码错误,您无法像在代码中那样用符号添加数字。你需要用string代替

"report_#{counter}"

这是最后的代码

$(this).prepend('<div class="form-group"> <%= j select_tag("report_#{counter}" ,   options_from_collection_for_select(current_user.reports,"id", "name"), class: "form-control" ) %> </div> ')