首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Rails 4中使用数据库条目填充下拉列表

如何在Rails 4中使用数据库条目填充下拉列表
EN

Stack Overflow用户
提问于 2014-01-09 11:24:04
回答 4查看 864关注 0票数 0

我对rails相当陌生,我正在构建我的第一个应用程序。我在网上搜索了一个正确的答案,但找不到任何对我的情况有用的答案。

我使用的是简单的表单,rails 4和引导3。我在一个(@employees)模型上有一个:location下拉列表,我想从我的@positions模型中填充一个job_title列。我使用了一个支架来生成我的位置MVC + job_title:string job_description:string。

如何使用来自:location (来自@form模型)的值填充我的:job_title下拉列表(在员工表单上)?我目前的代码是:

代码语言:javascript
复制
<div class="col-md-6 pad-10"> 
<% options = options_from_collection_for_select(@positions, 'id', 'job_title') %>
<%= f.select :location, options, :input_html => { class: "form-control" } %>
</div>

但正如你所知,这行不通。任何帮助都是非常感谢的!

解决方案:

代码语言:javascript
复制
<div class="col-md-6 pad-10"> 
<% options = options_from_collection_for_select(Position.all, 'id', 'job_title') %>
<%= f.select :location, options, :input_html => { class: "form-control" } %>
</div>

我用的是Position.all而不是@positions

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-01-09 17:22:45

options_from_collection_for_select需要一个数组。文档

所以尝试使用Modelname.all而不是@positions,或者用@positions = Modelname.all重新声明@positions

票数 1
EN

Stack Overflow用户

发布于 2014-01-09 11:41:56

由于您使用的是simple_form,所以可以为如下集合呈现一个选择框:

代码语言:javascript
复制
<%= f.input :location, collection: @positions, label_method: :job_title, value_method: :id, input_html: { class: "form-control" }  %>
票数 1
EN

Stack Overflow用户

发布于 2014-01-09 11:31:45

如果您希望将idPosition对象写入location字段,则应该这样做。如果您想要job_title cahnge :id to :job_title

代码语言:javascript
复制
<div class="col-md-6 pad-10"> 
<%= f.label :location %><br />
<%= f.collection_select :location, @positions, :id, :job_title %>
</div>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21018830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档