1

我创建了一个名为 Categories 的简单模型,它连接到 Platforms 模型。

class Platform < ActiveRecord::Base
    attr_accessible :name, :url, :country, :categories
   belongs_to  :category
end

class Category < ActiveRecord::Base
  attr_accessible :name
  has_many :platforms
end

我也成功地拥有了创建新平台的表格:

<%= simple_form_for(@platform) do |f| %>
  <%= f.error_notification %>

  <div class="form-inputs">
    <%= f.input :name %>
    <%= f.input :url %>
    <%= f.input :country %>
    <%= f.label :category %>
    <%= f.collection_select(:category_id, @categories, :id, :name, :include_blank => "Please select") %>
  </div>

  <div class="form-actions">
    <%= f.button :submit %>
  </div>
<% end %>

不幸的是,由于模型类别是新的,下拉列表目前只有 1 个值“请选择”。如何向此选择添加新值,最好是通过模型?

4

2 回答 2

1

请注意,使用 simple_form,您可以使用自动生成下拉列表

<%= f.association :category %>

这将使用数据库中的类别自动填充列表。有关更多提示,请参阅文档

编辑:类别只需单独添加。您可以使用 db/seeds.rb 脚本或通过 rails 控制台手动为数据库添加类别。或者您可以允许用户通过单独的表单和控制器添加类别。

例如,要在控制台中创建几个类别,rails c请从命令行运行并运行Category.create!(name: "Name")几个名称。

于 2012-11-04T15:15:16.320 回答
0

newPlatformsController 的操作中,添加@categories = Category.all,因此您将拥有所有类别。

于 2012-11-04T15:12:09.087 回答