连接脚手架和更改表单 - Ruby on Rails

时间:2016-08-04 06:49:02

标签: ruby-on-rails ruby forms

我对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 %>

1 个答案:

答案 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_formhttps://github.com/justinfrench/formtastic它们让生活变得更轻松。

如果您有任何其他问题,请告诉我。