如何在Rails中创建类别

时间:2013-07-20 03:39:45

标签: ruby-on-rails model-view-controller controller categories

我正在尝试向我的Rails应用添加类别,但不太知道如何执行此操作。

我有许多针脚(图像),并希望用户能够在这些针脚上分配类别。 ASSIGN 不会创建,编辑或删除类别,只需为其Pin选择一个。 这意味着,当用户上传图钉时,他可以从下拉列表中选择一个类别。

然后,另一个用户可以从菜单中选择一个类别,并且只列出此类别中的引脚。

我该怎么做?从哪里开始?

谢谢

2 个答案:

答案 0 :(得分:23)

首先如果您不想在应用程序中管理类别,那么您只需在表格中添加类别字段并在应用程序中选择类别:

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

其次,如果要在应用程序中管理类别,则必须为其维护单独的模型和表。因此,您可以从生成模型开始:

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

定义类别中的关联&amp; Pin模型为此添加验证: -

In Category Model:
  has_many :pins

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

按类别控制器和表单创建一些类别(我不认为,我需要告诉你那些东西,你可以自己做)

在您的图钉上传表单中添加以下选项: -

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

希望,这会有所帮助。

答案 1 :(得分:0)

您可能想在Category模型上添加def to_s方法。我相信它只会在Category.all选项上使用普通f.select来显示一些奇怪的内存地址代码。其他一切看起来都很棒!