[英]how to pass the value selected from a drop down list to a ruby on rails model
[英]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.