1

プラットフォームモデルに接続されたCategoriesという単純なモデルを作成しました。

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

PlatformsControllerのnewアクションに を追加する@categories = Category.allと、すべてのカテゴリが表示されます。

于 2012-11-04T15:12:09.087 に答える