0

尝试使用数据库中的值在 ruby​​ 中创建简单的下拉列表 - 就像这样:

<% ingredientArray = Ingredient.all.map { |ingredient| [ingredient.name, ingredient.id] } %>
<div class="field">
  <%= select_tag(:ingredient_id, ingredientArray) %><br/>
</div>

我收到了一个空的。
这是生成的html

<div class="field">
   <select id="ingredient_id" name="ingredient_id">[[&quot;Paprika&quot;, 5], [&quot;Cinnamon&quot;, 8], [&quot;Salt&quot;, 9], [&quot;Pepper&quot;, 10], [&quot;water&quot;, 11]]</select><br/>
</div>

我应该把html圣人放在哪里

4

2 回答 2

2

您应该阅读有关select_tag和相关方法的文档。它的第二个参数是一个包含选择框选项标签的字符串。您可以手动生成:

select_tag "people", "<option>David</option>".html_safe

或者使用options_from_collection_for_select方法:

select_tag "people", options_from_collection_for_select(@people, "id", "name")

(来自文档的示例)

特别是在您的情况下,制作该下拉菜单的最佳方法是:

<div class="field">
    <%= select_tag("Ingredients", options_from_collection_for_select(Ingredient.all, 'id', 'name')) %>
</div>
于 2012-04-28T18:01:39.383 回答
0

你也可以collection_select像这样使用:

<%= collection_select :recipe, :ingredient_id, Ingredient.all, :id, :name, { prompt: "&ndash; Select an Ingredient &ndash;".html_safe } %>

(我假设您尝试将成分 ID 分配给的父对象是:recipe。更改该值以适合您的应用程序。)

于 2012-04-28T18:11:49.067 回答