Submit_tag不提交選中的checkbox_tag的id。Rails:提交按鈕不提交值
這裏是代碼:
<%= form_tag pattendance_attendances_path, method: :put do %>
<% if coordinator_signed_in? || admin_signed_in? %>
<ul class="list-group">
<li class="list-group-item">
<%= radio_button_tag "round", 1 , true %> Round 1</li>
<li class="list-group-item">
<%= radio_button_tag "round", 2 %> Round 2 </li>
<li class="list-group-item">
<%= radio_button_tag "round", 3 %> Round 3 </li>
<li class="list-group-item">
<%= radio_button_tag "round", 4 %> Round 4 </li>
<li class="list-group-item">
<%= radio_button_tag "round", 5 %> Round 5 </li>
</li>
<li class="list-group-item">
<%= radio_button_tag "mark_present", "present" , true %> Present <br>
<%= radio_button_tag "mark_present", "absent" %>Absent
</li><br>
<li class="list-group-item">
<%= submit_tag "Mark Attendance"%></li>
</ul>
<% end %>
</div>
<div class="table-responsive">
<div class="col-md-8">
<table class="table table-hover">
<thead>
<tr>
<th>Mark</th>
<th><%= model_class.human_attribute_name(:team_id) %> ID</th>
<th><%= model_class.human_attribute_name(:event_id) %> Name</th>
<th><%= model_class.human_attribute_name(:round) %></th>
<th><%= model_class.human_attribute_name(:status) %></th>
<th><%=t '.actions', :default => t("helpers.actions") %></th>
</tr>
</thead>
<tbody>
<% @attendances.each do |attendance| %>
<tr>
<td><%= check_box_tag "a_ids[]", attendance.id %></td>
<td><%= attendance.team_id %></td>
<td><%= attendance.event_id %></td>
<td><%= attendance.round %></td>
<td><%= attendance.status %></td>
<td>
<%if admin_signed_in? %>
<%= link_to t('.edit', :default => t("helpers.links.edit")),
edit_attendance_path(attendance), :class => 'btn btn-default btn-xs' %>
<%= link_to t('.destroy', :default => t("helpers.links.destroy")),
attendance_path(attendance),
:method => :delete,
:data => { :confirm => t('.confirm', :default => t("helpers.links.confirm", :default => 'Are you sure?')) },
:class => 'btn btn-xs btn-danger' %>
<%end%>
<%= link_to t('.show', :default => t("helpers.links.View details")),
attendance, :class => 'btn btn-default btn-xs' %>
</td>
</tr>
<% end %>
</tbody>
</table>
</div>
</div>
<% end %>
控制器代碼:
def pattendance
params[:a_ids]
if params[:mark_present]=="present"
Attendance.where(id: params[:a_ids]).update_all(status: 'Present', round: params[:round])
else
Attendance.where(id: params[:a_ids]).update_all(status: 'Absent', round: params[:round])
end
redirect_to attendances_url
end
背後實施此方法的動機是爲了紀念所有在特定事件註冊的球隊參加。 複選框用於選擇多個團隊。 我選擇「Attendance.ids」,因爲一個團隊可以參與多個活動。所以選擇Team IDS可以在所有事件中標記出隊。 爲了讓每個使用參加ID的活動都具有獨特性。
選擇從單選按鈕輪和狀態(存在或不存在),並點擊標記出勤 submit_tag應該更新選定複選框的值之後。 但是 有時值被傳遞,有時它們不是。
請告訴我這段代碼有什麼問題。這將是非常有幫助的。
控制檯: 我嘗試更新循環起選擇複選框爲 「2」 和狀態 「存在」
Parameters: {"utf8"=>"✓", "authenticity_token"=>"2uzivV42tLjwuUd+QyEHvL6tCa8ZCE8xRbgJ5k7ueEcV9oaQt5yLafKmZTiFceZEY9B3wyY52qxL1f0hvqQ47A==", "round"=>"2", "mark_present"=>"present", "commit"=>"Mark Attendance"}
協調員負荷(0.1毫秒)
SELECT 「協調員」 * FROM。 「協調員」WHERE「協調員」。「id」=? ORDER BY「coordinators」。「id」ASC LIMIT 1 [[「id」,1]] SQL(0.2ms)
UPDATE「attendances」SET「status」='Present','round'= 1 WHERE'attendance 「。」id「IS NULL 考勤負載(0.1ms)SELECT」attendances「。* FROM」attendances「WHERE」attendances「。」id「IS NULL 重定向到http://localhost:3000/attendances 已完成302在5ms中找到(ActiveRecord:0.4ms)
點擊提交按鈕後沒有通過選定的複選框值。 當我從顯示頁面返回到索引頁面時,值不會更新。但刷新後,它始終如一地工作
您不能在Ruby上下文中使用'checked =「checked」'。你所做的只是創建一個名爲'checked'的局部變量,其值爲''checked''。 – meagar
謝謝指出。但是這可以解決我的問題? –
實際上它是一個屬性,它可以在窗體加載時預先選擇單選按鈕,現在所有的單選按鈕都不是預選的。 –