我对RoR很新,很抱歉这个问题:
我创造了几个脚手架:大学,活动,公司。关系如下:
以下是模型:
class Event < ActiveRecord::Base
belongs_to :university
belongs_to :company
end
class University < ActiveRecord::Base
has_many :events
end
class Company < ActiveRecord::Base
has_many :events
end
我正在尝试在我的新活动表格中下拉,为大学和公司提供选项。目前所有这些模型都有id,但是以新事件的形式出现,我只有公司和大学的“字符串”(即没有链接在表单中,没有下拉列表)。有人可以帮助我在这种形式下应该拥有什么吗?
以下是表单代码:
<%= form_for(@event) do |f| %>
<% if @event.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@event.errors.count, "error") %> prohibited this event from being saved:</h2>
<ul>
<% @event.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field form-group">
<label><%= f.label :company, class: 'col-sm-2 control-label' %></label>
<div class="col sm-6">
<%= f.text_field :company, class: 'form-control' %>
</div>
<div class="field form-group">
<label><%= f.label :university, class: 'col-sm-2 control-label' %> </label>
<div class="col sm-6">
<%= f.text_field :university, class: 'form-control' %>
</div>
<div class="field form-group">
<label><%= f.label :name, class: 'col-sm-2 control-label' %></label>
<div class="col sm-6">
<%= f.text_field :name, class: 'form-control' %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
答案 0 :(得分:0)
这很简单,你必须使用如下例子。
<%= f.collection_select :university_id, University.all, :id, :name %>
<%= f.collection_select :company_id, Company.all, :id, :name %>
你应该看看这些宝石https://github.com/plataformatec/simple_form,https://github.com/justinfrench/formtastic它们让生活变得更轻松。
如果您有任何其他问题,请告诉我。