我创建了一个名为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个值“请选择”。如何向此选择添加新值,最好通过模型?
答案 0 :(得分:1)
请注意,使用simple_form,您可以使用
自动生成下拉列表<%= f.association :category %>
这将自动使用数据库中的类别填充列表。有关更多提示,请参阅documentation。
编辑: 类别只需单独添加。您可以使用db / seeds.rb脚本或通过rails控制台手动为数据库添加类别。或者,您可以允许用户通过单独的表单和控制器添加类别。
例如,要在控制台中创建几个类别,请从命令行运行rails c
并运行Category.create!(name: "Name")
以获取一些名称。
答案 1 :(得分:0)
在PlatformsController的new
操作中,添加@categories = Category.all
,这样您就拥有了所有类别。