我正在尝试将类别添加到我的 Rails 应用程序,但不太知道如何执行此操作。
我有很多 Pin 图(图片),并希望用户能够在这些 Pin 图上分配一个类别。 ASSIGN不是创建、编辑或删除类别,只是为他们的 Pin 图选择一个。这意味着,当用户上传 pin 时,他可以从下拉列表中选择类别。
然后,另一个用户可以从菜单中选择一个类别,并且只会列出该类别中的 Pin 图。
我该怎么做呢?从哪儿开始 ?
谢谢
我正在尝试将类别添加到我的 Rails 应用程序,但不太知道如何执行此操作。
我有很多 Pin 图(图片),并希望用户能够在这些 Pin 图上分配一个类别。 ASSIGN不是创建、编辑或删除类别,只是为他们的 Pin 图选择一个。这意味着,当用户上传 pin 时,他可以从下拉列表中选择类别。
然后,另一个用户可以从菜单中选择一个类别,并且只会列出该类别中的 Pin 图。
我该怎么做呢?从哪儿开始 ?
谢谢
首先,如果您不想在应用程序中管理类别,则只需在表中添加类别字段并在应用程序中选择类别:
<%= 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" %>
希望,它会有所帮助。
你可能想def to_s
在你的 Category 模型上添加一个方法。Category.all
我相信只要在f.select
选项上使用plain,它就会显示一些奇怪的内存地址代码。其他一切看起来都很棒!