你怎么设置一个自定义时使用check_box_tag帮助在轨?

我有一个循环,创造一大堆的框的基础上收集:

- subject.syllabus_references.each do |sr|
      = check_box_tag 'question[syllabus_reference]', sr.id, :id => sr.id
      = label_tag sr.id, sr.name

我想设置一个自定义的标识,以便我的标签选择框正常工作,但我似乎无法找出如何(:id=>sr.id不起作用...).

该问题也可能与我一定义的标签,因此,如果我可以获得,要参照正确的检查箱子没有设置一个定制标识,然后,将被罚款。

有帮助吗?

解决方案

我用这个在我的应用程序从集合创建复选框的标签,并将其提交的数组:

<% @cursos.each do |c| %>
  <span class='select_curso'>
    <%= check_box_tag "vaga[curso_ids][]",
      c.id, (checked = true if form.object.curso_ids.include?(c.id)) %>
    <%= label_tag "vaga[curso_ids][][#{c.id}]", c.nome %>
  </span>
<% end %>

因此,在PARAMS,我有一个数组的 “curso_ids”=> [ “1”, “3”, “5”] 而不是字符串的 “curso_ids”=>“5 “即可。如果要返回一个值,使用瓦加[curso_id] 下,以其他方式使用瓦加[curso_ids] [] 以返回一个数组。

其他提示

如果你给的复选框,一个额外的参数,将工作:

= check_box_tag 'question[syllabus_reference]', 1, nil, :id => sr.id

@Ganesh,在解决方案中所得到的散列PARAMS具有以下形式:

params[:question][:syllabus_reference] = {1 => 1, 2 => 2, 3 => 3, ...}

这些应该更好地为你工作:

check_box_tag "question[syllabus_reference][]", sr.id, checked, {:id => "question_syllabus_reference_#{sr.id}"

注意第三个参数(检查)所需的这个工作。将所得的参数数组将是

params[:question][:syllabus_reference] = {1, 2, 3, ...}

我想我想通了......

- subject.syllabus_references.each do |sr|
  = check_box_tag "question[syllabus_reference][#{sr.id}]", sr.id
  = label_tag "question[syllabus_reference][#{sr.id}]", sr.name

本作品,但如果你有更好的方法让我知道!

这是非常有益的,并带来了我的天-只要搜索要结束了。大多数我发现直到现在包含的语法和额外的轨道参数的任标记或忽略。所有我想做的就是通过一系列自我看到我的控制和使用框告诉器阵列要素来处理。我能够减少上述更进一步,以便:

<%= check_box_tag "c[]", c.id %>

其中c来自我的数据库:

<%= @objects.each do |c| %>

这当然是穿一array of object ids我控制有关的只有经过检查的项目(项目被选中通过默认,因为我离开了 :不 参数,它的方式产生同样的结果 真的),这是 几乎 所有我需要的。

现在我只需要通过在一个对象类型的指标-即使只是一字符串将会做的很好-所以,控制器知道什么类型的对象是处理没有我必须扩大我的模型与一个额外的柱。我将开始在现在和我的解决方案,但请让我知道如果有一个快速和简单的方法来做到这个,如果你已经知道了。

HAML样品

比方说你有一个print属性的framed对象的地方,你必须显示prints的列表,以便在循环中,你将在每个row用于更新column

创建自定义checkboxframed有唯一的ID
.input.row.collapse
  = check_box_tag :framed, print.framed, nil, { id: "framed_#{print.id}" }

Leito,

只是为了关闭循环,我放弃了试图通过在传递一个对象类型指示符的 check_box_tag 即可。每个参数I添加到我的最后交高于(低于??)所示的语法简单地引起的复选框状态默认为检查而非的未经检查下,不经过任何附加的数据到控制器。

虽然其余警报替代解决方案,因为他们展示自己,暂且我合并对象类型到的 submit_tag 值。这种关系的功能显示,因为在 submit_tag 值是什么证明提交按钮的用户,但可以说,这股势力的清晰度为偶数,因为它提供了所需消歧的观点控制器。

学习天天...

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top