我有一个用于创建具有隐藏字段的用户的 rails 表单:
= hidden_field_tag "user[site_ids][]", @current_site.id, :data => @current_site.id, :class => 'current_site_id'
它设置 current_site 的 site_id。
我还有几个复选框列出了所有站点:
- Site.all.each do |site|
%label.checkbox
= check_box_tag 'user[site_ids][]', site.id, false, :class => "sites_checkbox"
= site.name
我有隐藏字段的原因是 si 如果用户没有选择任何复选框,它至少会设置@current_site
.
我正在考虑像这样使用 JQuery:如果用户选择我将值设置为 999 的复选框之一,该复选框不在数据库中:
$(".roles_selected").click(function() {
var selected = $(this).closest("label");
if (selected.attr("data") == 'superadmin') {
$('.current_site_id').val(999);
} else {
$('.current_site_id').val($('.current_site_id').attr('data'));
}
});
并且在控制器中可能会删除 999params[:user][:site_ids]
这似乎太骇人听闻了……还有其他想法吗?