在我在表格中过滤结果之前,我的表单按照我的预期方式工作。
预期的功能是,允许用户选择多个对象,选择的对象id在params散列中提交,并且可以通过params [:event_ids]访问,当用户单击“Submit”按钮时(我已经将“提交”按钮标记为“交换”以阐明用户的功能“)
当我通过ajax过滤结果时,复选框和提交按钮仍然在视图中可见,但是当我单击“交换”时,所选对象不会与表单一起提交。参数哈希中不存在I.E参数[:event_ids]。我很难过。
以下是代码:
show.html.erb
<div class="jumbotron">
<div class="container">
<h1><%=@carpool.name%> Carpool!</h1>
<p>View carpool specific events; Send Invites and Add Events if you are the carpool manager; View a list of all members in the carpool</p>
<% if current_user == @carpool.manager %>
<p>
<a class="btn btn-primary btn-lg" href="<%=@carpool.id%>/events/new" role="button">Add Events</a>
<a class="btn btn-primary btn-lg" href="<%=@carpool.id%>/invites/new" role="button">Send Invites</a>
</p>
<% end %>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-md-3">
<%= render 'show_members_list' %>
</div>
<div class="col-md-9">
<%= render 'show_events_list' %>
</div>
</div>
</div>
_show_events_list.html.erb
<div class="panel panel-default">
<!-- Default panel contents -->
<div class="panel-heading">Drive Events</div>
<div class="panel-body">
<div class="btn-group right" role="group" aria-label="...">
<%= button_to "All Drive Events",
carpool_path(@carpool) + '?search=all',
type: "button",
remote: true,
method: :get,
class: "btn btn-default" %>
<%= button_to "I'm Driving",
carpool_path(@carpool) + '?search=my_events',
type: "button",
remote: true,
method: :get,
class: "btn btn-default"
%>
<%= button_to "I'm being Picked Up",
carpool_path(@carpool) + '?search=not_driving',
type: "button",
remote: true,
method: :get,
class: "btn btn-default"
%>
</div>
<div class="swap_button"><%= submit_tag 'Swap!', data: {confirm: "Are you sure?"}, class: "btn btn-primary btn-lg swap", id: "swap_submit" %></div>
</div>
<!-- Table -->
<table class="table">
<thead>
<tr>
<th>Who's Driving?</th>
<th>Event Name</th>
<th>Drive Event Type</th>
<th>Place</th>
<th>Game/Not Game</th>
<th>Address</th>
<th>Date</th>
<th>Swap</th>
</tr>
</thead>
<%= form_tag carpool_path(@carpool), method: :get, id: "swap_form" do %>
<tbody id="carpool_events">
<%= render 'events_list.html.erb', locals: {events: @events} %>
</tbody>
<% end %>
</table>
</div>
_events_list.html.erb
<% if @events != nil %>
<% @events.each do |event| %>
<% if event.driver_id != nil %>
<tr>
<td><%= event.driver ? event.driver.name : "swapped"%></td>
<td><%= event.name%></td>
<td><%= event.drop_off? ? "Drop Off At" : "Pick Up From" %></td>
<td><%= event.location_name%></td>
<td><%= event.is_game ? "Game" : "Not Game(event, practice)" %></td>
<td><%= event.location_address %></td>
<td><%= event.date ? event.date.strftime("%A, %d %b %Y %l:%M %p") : "Please Enter Details on TeamSnap!"%></td>
<td>
<% if current_user == event.driver %>
<%= check_box_tag "event_ids[]", event.id %>
<% end %>
</td>
</tr>
<% end %>
<% end %>
<% end %>
show.js.erb
$("#carpool_events").html("<%= escape_javascript(render partial: 'events_list', locals: { events: @events } ) %>");
答案 0 :(得分:0)
尝试这样的事情
<%= check_box_tag "carpool[event_ids][]", event.id %>
并且您的控制台日志记录验证将出现的参数