undefined method `stringify_keys' for "progress":String
放入check_box_tag狀態時出現此錯誤。怎么解決的?
<%= form_tag update_me_iteams_path, :method =>'put' do %>
<table>
<tr>
<th>Title</th>
<th>Text</th>
<th>Status</th>
<th></th>
</tr>
<% @iteams.each do |iteam| %>
<tr>
<td><%= iteam.id %></td>
<td><%= iteam.title %></td>
<td><%= iteam.text %></td>
<td><%= iteam.status %></td>
<td><%= link_to 'Show', iteam_path(iteam) %></td>
<td>
<%= check_box_tag "id[]", iteam.id, "status[]", iteam.status %>
</td>
</tr>
<% end %>
</table>
<%= submit_tag "Edit Checked" %>
<% end %>
我的定義
def update_me
@iteam = Iteam.find(params[:id])
if CHECK_STATUS_I_DONT_KNOWN == '0'
Iteam.where(params[:id]).update_attribute(status: 'DONE')
else
Iteam.where(params[:id]).update_attribute(status: 'progress')
end
end
uj5u.com熱心網友回復:
check_box_tag簽名是check_box_tag(name, value = "1", checked = false, options = {})(https://apidock.com/rails/ActionView/Helpers/FormTagHelper/check_box_tag)。您正在item.status作為導致錯誤的選項傳遞。
不幸的是,我不清楚您要在這里創建什么復選框 - 為什么要在"status[]"那里創建,是另一個復選框嗎?或者您是否試圖通過一個復選框傳遞兩個表單引數 - 這根本行不通。我希望更像:
check_box_tag "id[]", item.id
編輯:
您不需要status通過表單發送,您的資料庫中已經有了它。更新表單以進行上述更改和您的操作:
def update_me
@iteams = Iteam.where(id: params[:id])
done_items = @itames.where(status: 'DONE').pluck(:id)
progress_items = @items.where(status: 'progress).pluck(:id)
@itaems.where(id: done_items).update_all(status: 'progress')
@itaems.where(id: progress_items).update_all(status: 'DONE')
end
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/359987.html
