8

Rails アプリにカテゴリを追加しようとしていますが、これを行う方法がよくわかりません。

多くのピン (画像) があり、ユーザーがそれらのピンにカテゴリを割り当てられるようにしたいと考えています。 ASSIGNはカテゴリーを作成、編集、削除するのではなく、ピン用に 1 つ選択するだけです。つまり、ユーザーがピンをアップロードすると、ドロップダウン リストからカテゴリを選択できます。

次に、別のユーザーがメニューからカテゴリを選択すると、このカテゴリのピンのみがリストされます。

どうすればいいですか?どこから始めれば ?

ありがとうございました

4

2 に答える 2

25

最初に、アプリケーションでカテゴリを管理したくない場合は、テーブルにカテゴリ フィールドを追加し、アプリケーションでカテゴリを選択するだけです。

<%= f.select :category, [ 'Box', 'Cover', 'Poster' ], :prompt => 'Select One' %>

2 つ目は、アプリケーションでカテゴリを管理する場合は、別のモデルとテーブルを維持する必要があることです。したがって、モデルの生成から始めることができます。

rails g model category

アプリケーション ディレクトリにモデルと移行が追加されます。移行に次のものを追加します。

class CreateCategories < ActiveRecord::Migration
  def change
    create_table :categories do |t|
      t.string :name
      t.text :description
      ## you can add more stuff as per your requirements 
      t.timestamps
    end
  end
end

カテゴリで関連付けを定義し、モデルをピン留めして、これの検証を追加します:-

In Category Model:
  has_many :pins

In Pin Model :
  belongs_to :category
  validates :category, presence: true

カテゴリコントローラーとフォームごとにいくつかのカテゴリを作成します(私は、あなたにそれを言う必要はないと思います、あなたはそれを自分で行うことができます)

ピンアップロードフォームで、この選択を追加します:-

<%= f.select :category, Category.all, :prompt => "Select One" %>

願っています、それは役に立ちます。

于 2013-07-20T05:16:31.567 に答える
0

def to_sCategory モデルにメソッドを追加したいかもしれません。オプションでplainを使用するだけで、奇妙なメモリアドレスコードが表示されると思いCategory.allますf.select。他のすべてが素晴らしく見えます!

于 2016-03-26T16:34:33.313 に答える