gpt4 book ai didi

ruby-on-rails-3 - Rails中的label_tag和checkbox_tag问题

转载 作者:行者123 更新时间:2023-12-03 22:43:09 24 4
gpt4 key购买 nike

我希望我的复选框可用,因此我通常会在标签上添加标签fors,以便您可以选择文本,而不必为该复选框“瞄准”。

问题是,如果我在Rails中使用嵌套的属性表单,该怎么办?我现在有以下代码:

%ul
- test_category.test_cases.each do |test_case|
%li
= check_box_tag "job_test_cases[]", "#{test_case.id}", test_case.id
= label_tag "test_case_#{test_case.id}", test_case.name

问题是它会产生以下结果:
<li>
<input type="checkbox" value="70" name="job_test_cases[]" id="job_test_cases_" checked="checked">
<label for="test_case_70">Blah blah</label>
</li>

而我希望它是这样的:
<li>
<input type="checkbox" value="70" name="test_case_id[]" id="test_case_70" checked="checked">
<label for="test_case_70">Blah BLah blah/label>
</li>

最佳答案

我能够将复选框与标签匹配,如下所示:

在复选框中:
我使用了check_box_tag,将特定的项目名称(这里的角色)指定为数组的索引,以生成带有值的ID。我传递了:name哈希值,以覆盖在check_box_tag中指定的名称,因此它没有id:

check_box_tag "user[roles][#{role.to_s}]", role.to_s, @user.has_role?(role), :name => "user[roles][]"

生成以下HTML:
<input id="user_roles_ROLE1" name="user[roles][]" type="checkbox" value="ROLE1" />

在标签中,我使用数组名称+'_'加上项目名称(此处为角色)指定了ID,以正确指向标签中的ID:
label_tag "user_roles_#{role}", cur_role.role_name, :class => 'span_after_label'

生成以下HTML:
<label class="span_after_label" for="user_roles_ROLE1">User</label>

当PUT发送到 Controller 时,参数具有以下字段:
"user"=>{ ..., "roles"=>["ROLE1", "ROLE2", "ROLE3"], ... }

这是所有已检查角色的角色名称。

因此,对于您的代码,我将尝试以下操作:
check_box_tag "test_case_id[#{test_case.id}]", "#{test_case.id}", test_case.id, :name => "test_case_id[]"

关于ruby-on-rails-3 - Rails中的label_tag和checkbox_tag问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5002908/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com