我正在尝试更新与 current_user 关联的站点表中的多行。我的数据库中存储了加密的数据,因此我必须解密字段并在 form_tag 中的字段中预先填充数据,以便用户在提交时查看和更新所有条目。使用此代码,我收到一条错误消息,提示“param 'sites' 的预期哈希(获取数组)”我不确定如何更改代码以正确格式化 params 哈希以更新 current_user 的所有行。谢谢!
Update_all 表单
<%= form_tag update_all_url method: 'patch' do %>
<% @sites.each do |site| %>
<% @pwhint_de = site.pwhint_sb.decrypt 'password' %> # This is decrypting pwhint
<% @username_de = site.username_sb.decrypt 'password' %> # This is decrypting username
<tr> <%= hidden_field_tag 'sites[]', site.id %>
<td><%= text_field_tag "sites[#{site.id}][company]", site.company %></td>
<td><%= text_field_tag "sites[#{site.id}][username_sb]", @username_de %></td>
<td><%= text_field_tag "sites[#{site.id}][pwhint_sb]", @pwhint_de %></td>
</tr>
<% end %>
<%= button_tag "Save all changes" %>
<% end %>
控制器
def update_all_sites
params[:sites].each do |id, new_attributes|
Site.find(id).update_attributes new_attributes
end