2013-07-20 49 views
8

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

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

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

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

谢谢

回答

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 

定义协会类别&引脚模型添加验证此: -

In Category Model: 
    has_many :pins 

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

创建某些类别按类别控制器和形式(我不认为,我需要告诉你的东西,你可以做你自己)

在您的脚上传表单中添加这种选择: -

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

希望,这将有所帮助。

+0

Rails Guy you Rock,非常感谢。但我有一个问题:我做了以上所有。现在,我创建了一个类别控制器?不会允许用户创建类别吗? Sry,如果这个问题对你来说似乎太不讨人喜欢了,那么对于Rails来说,这是相当新的。谢谢 –

+0

是的,你可以添加,删除,编辑和删除你的类别。将您的方法添加到您的控制器和视图中的模板中。现在你很好走。如果你有你想要的东西,请接受答案。谢谢。 –

+0

我认为你没有理解我的意思!我对Rails相当陌生,并且有一些麻烦的理解。 Sry为此。现在,如果我创建一个控制器,用户可以访问site.com/categories并创建类别。我不想那样。我只想设置类别,用户应该只从列表中选择。 –

0

您可能希望在您的类别模型中添加def to_s方法。我相信只要在f.select选项上使用简单的Category.all就会显示一些奇怪的内存地址代码。其他一切都很棒!

相关问题