2

我是 Ruby on rails 的新手,我正在尝试在对象 a) 中显示带有来自对象 b) 的 id 的选择:

对象 a) 功能

对象 b) 经验

函数_form.html.erb

<div class="field">
<%= f.label :experience_id %><br />
<%= f.number_field :experience_id %>

我想创建一个在表体验中显示项目的选择。我想这是一个循环,循环遍历@体验的所有元素,但不是如何循环。我已经阅读了有关表单助手的信息,但我无法启蒙。

非常感谢

关于第二个问题

非常感谢您的帮助。我按照您的建议进行了尝试,但是选择标记的名称不是对象的正确名称,我不知道如何将其与该辅助方法一起使用。所以我尝试了另一个助手,选择,并且成功了:

选项 a) select_tag :habilidad, options_for_select({"1" => 1, "2" => 2})

结果源代码:

<div class="field">
    <label for="skill_habilidad">Habilidad</label><br />
    <select id="habilidad" NAME="habilidad"><option value="1">1</option>
<option value="2">2</option></select>
  </div>

选项 b) select(:skill, :habilidad, {"1" =>1, "2" => 2, "3" => 3, "4" => 4, "5" => 5})

结果源代码:

<div class="field">
    <label for="skill_habilidad">Habilidad</label><br />
    <select id="skill_habilidad" NAME="skill[habilidad]"><option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option></select> 
  </div>
4

4 回答 4

2

您可以使用f.collection_select示例:

<%= f.collection_select :experience_id, Experience.all, :id, :name, :prompt => true %>

参考:Rails Api 文档 :: Collection Select

于 2012-12-11T21:29:25.683 回答
2

你可以这样select_tag使用options_for_select

<%= select_tag :skills, options_for_select((1..5).to_a.map { |val| [val,val] }) %>

您可以替换(1..5).to_a为变量。

参考:http ://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-options_for_select

于 2012-12-12T20:50:52.240 回答
1

您可以使用f.select,例如:

<%= f.label :experience_id %><br />
<%= f.select :experience_id, Experience.all.collect {|e| [ e.name, e.id ] }, { :include_blank => true } %>

例如,我曾经e.name是选择选项上的文本,您需要更改为所需的属性。

参考: http ://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-select

于 2012-12-11T20:56:16.953 回答
0

这段代码对我有用

<%= f.select :id, Model.all.collect {|d| [ d.attributeN, d.attributeN ] }, {include_blank: 'None'}, class: 'form-control'%>
于 2016-04-01T18:44:53.183 回答