繁体   English   中英

Ruby on Rails-从模型下拉列表

[英]ruby on rails - drop down list from model

我想从模型“ Company”创建一个带有Ruby on rails的下拉列表,该模型的项目名为“ name”。 我希望下拉列表的长度与Company.count(动态)一样长

例如,“公司”中的3个元素:

 <%= f.select :company_brand, [[Company.find(1).name, Company.find(1).id],[Company.find(2).name, Company.find(2).id],[Company.find(3).name, Company.find(3).id]]%>

collection_select文档 )将提供您所需的内容:

collection_select(object, method, collection, value_method, text_method, options = {}, html_options = {})

返回值和标记,用于收集对象类的方法的现有返回值。 从实例对象的调用方法返回的值将被选中。 如果调用方法返回nil,则在选项哈希中不包含:prompt或:include_blank的情况下不会进行选择。

:value_method和:text_method参数是要在集合的每个成员上调用的方法。 返回值分别用作每个标签的value属性和内容。 它们也可以是响应调用的任何对象,例如proc,将为集合的每个成员调用以检索值/文本。

对于您的用例,这意味着将代码更改为:

<%= f.collection_select(:company_brand, Company.all, :id, :name) %>

您可以这样:

<%= select(:company_brand, Company.all.collect {|c| [ c.name, c.id ] }, { include_blank: true }) %>

您可以尝试一下,我认为这会对您有所帮助。

<%= f.select :company_brand, options_from_collection_for_select(Company.all, "id", "name") %>
#League - form.html.erb
<%= f.collection_select(:game_id, Game.order(:title), :id, :title, {prompt: true}, {class: 'form-control col-md-7 col-xs-12', required: "required"})%>

#.html_output
<select class="form-control col-md-7 col-xs-12" required="required" name="league[game_id]" id="league_game_id"><option value="">Please select</option>
    <option value="2">csgo</option>
    <option value="1">dota2</option>
</select>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM