我对rails相当陌生,我正在构建我的第一个应用程序。我在网上搜索了一个正确的答案,但找不到任何对我的情况有用的答案。
我使用的是简单的表单,rails 4和引导3。我在一个(@employees)模型上有一个:location下拉列表,我想从我的@positions模型中填充一个job_title列。我使用了一个支架来生成我的位置MVC + job_title:string job_description:string。
如何使用来自:location (来自@form模型)的值填充我的:job_title下拉列表(在员工表单上)?我目前的代码是:
<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>但正如你所知,这行不通。任何帮助都是非常感谢的!
解决方案:
<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。
发布于 2014-01-09 17:22:45
options_from_collection_for_select需要一个数组。文档
所以尝试使用Modelname.all而不是@positions,或者用@positions = Modelname.all重新声明@positions。
发布于 2014-01-09 11:41:56
由于您使用的是simple_form,所以可以为如下集合呈现一个选择框:
<%= f.input :location, collection: @positions, label_method: :job_title, value_method: :id, input_html: { class: "form-control" } %>发布于 2014-01-09 11:31:45
如果您希望将id的Position对象写入location字段,则应该这样做。如果您想要job_title cahnge :id to :job_title。
<div class="col-md-6 pad-10">
<%= f.label :location %><br />
<%= f.collection_select :location, @positions, :id, :job_title %>
</div>https://stackoverflow.com/questions/21018830
复制相似问题