ruby-on-rails – 如何确保最初根据活动记录对象属性检查rails f
发布时间:2020-12-17 02:59:11 所属栏目:百科 来源:网络整理
导读:对此有点兴奋;我确信我只是没有得到一些完全明显的东西,因为我无法想象这是故意的这种困难.其他所有内容都以我的形式工作,但在初始显示时,复选框不会被检查.这是相关的erb: %= form_for :project,:url={:controller='projects',:action='update_permissions
对此有点兴奋;我确信我只是没有得到一些完全明显的东西,因为我无法想象这是故意的这种困难.其他所有内容都以我的形式工作,但在初始显示时,复选框不会被检查.这是相关的erb:
<%= form_for :project,:url=>{:controller=>'projects',:action=>'update_permissions',:id=>@project.id} do |f| %> <fieldset> <% @project.contributors.each do |contributor| %> <%= f.fields_for "contributors[#{contributor.id}]" do |c| %> <ul id="PermissionsList" class="permissions-grid in-line clearfix full"> <li> <ul class = "clearfix permission-row"> <li class="first"> <%= c.check_box :is_active %><label for="<%= contributor.id %>"><%= contributor.user.whole_name %></label> </li> <% @roles.each do |role| %> <li><%= c.radio_button :role_id,role.id,:id=>"#{contributor.id}-#{role.id}" %><%= label "#{contributor.id}-#{role.id}",role.role_name %></li> <% end %> </ul> <% end %> </li> </ul> <% end %> </fieldset> 我将is_checked属性(对于当前的贡献者)传递给check_box助手.这是正确的做法吗?这是生成的标记的样子: <ul class="clearfix permission-row"> <li class="first"> <input type="hidden" value="0" name="project[contributors[9]][is_active]"><input type="checkbox" value="1" name="project[contributors[9]][is_active]" id="project_contributors_9__is_active"><label for="9">Bill Hatch</label> </li> <li><input type="radio" value="1" name="project[contributors[9]][role_id]" id="9-1" style="display: none;"><label for="9-1_Reviewer" style="display: none;">Reviewer</label></li> <li><input type="radio" value="2" name="project[contributors[9]][role_id]" id="9-2" style="display: none;"><label for="9-2_Tech. Reviewer" style="display: none;">Tech. reviewer</label></li> <li><input type="radio" value="3" name="project[contributors[9]][role_id]" id="9-3" style="display: none;"><label for="9-3_Contributor" style="display: none;">Contributor</label></li> </ul> 复选框的值是1,因为它应该是,所以我有点困惑为什么它没有显示为已选中.就像我说的那样,我确信我只是错过了一些明显的东西;没有办法可以这么难;-) 解决方法
这种形式有一些问题.
首先,为什么不使用rails来为你做迭代?其次,html id不能以数字开头.这种方法应该注意正确填充值,因为您正在使用表单构建器而不是手动插入值. <%= form_for @project,:url => update_permissions_project_path(@project) do |f| <fieldset> <%= f.fields_for :contributors do |c| %> <ul id="PermissionsList" class="permissions-grid in-line clearfix full"> <li> <ul class = "clearfix permission-row"> <li class="first"> <%= c.check_box :is_active %> <%= c.label :is_active,c.object.user.whole_name %> </li> <% @roles.each do |role| %> <li> <%= c.radio_button :role_id %> <%= c.label :role_id,role.role_name %> </li> <% end %> </ul> </li> </ul> <% end %> </fieldset> <% end %> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |