8

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

我有很多 Pin 图(图片),并希望用户能够在这些 Pin 图上分配一个类别。 ASSIGN不是创建、编辑或删除类别,只是为他们的 Pin 图选择一个。这意味着,当用户上传 pin 时,他可以从下拉列表中选择类别。

然后,另一个用户可以从菜单中选择一个类别,并且只会列出该类别中的 Pin 图。

我该怎么做呢?从哪儿开始 ?

谢谢

4

2 回答 2

25

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

<%= 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

在类别和引脚模型中定义关联为此添加验证:-

In Category Model:
  has_many :pins

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

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

在您的 pin 上传表单中添加此选项:-

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

希望,它会有所帮助。

于 2013-07-20T05:16:31.567 回答
0

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

于 2016-03-26T16:34:33.313 回答