【问题标题】:best way to add categories to database将类别添加到数据库的最佳方法
【发布时间】:2015-01-09 15:40:40
【问题描述】:

我正在寻找添加保存到数据库的类别的最佳/最有效方法。我创建了带有名称列的类别模型。我生成了控制器。我的第一个想法是直接将类别输入控制器,因为我将是唯一可以创建、编辑和销毁它们的人。这是它的样子:

class CategoriesController < ApplicationController

def women 
end

def kids
end

def babies
end

def home_decor
end

end

很好,但这不会保存到数据库中,因为我想稍后将这些类别与产品相关联,所以我需要它来保存到数据库中。我可以直接在控制台中创建这些类别,但我不确定当我推动生产(在 Heroku 上)时如何再次创建它们(这似乎有点乏味)。

我的另一个选择是创建一个表单来创建类别,并且只授予管理员访问权限。

我错过了什么吗?有没有更有效的方法来做到这一点,或者管理路线是处理它的最佳方式?

感谢您的任何建议!

【问题讨论】:

    标签: database ruby-on-rails-4 heroku


    【解决方案1】:

    忘记那个控制器。您正在寻找的是db/seeds.rb。它只是一个脚本,您可以在其中放置数据库的默认内容。因此,在您的情况下,您需要输入以下内容:

    Category.delete_all # For avoiding duplicate content
    
    Category.create!({id: 1, name: 'women'}) # Use create! so you'll know if there is any errors
    Category.create!({id: 2, name: 'kids'})
    # etc...
    

    然后只需运行将内容放入数据库的脚本:

    rake db:seed
    

    在heroku中:

    heroku run rake db:seed
    

    【讨论】:

    • 谢谢马里奥。它在 dev 上运行良好,但由于另一个错误,我在 heroku 上遇到了问题。有没有办法查看 Heroku 数据库,可能类似于 sqlite 浏览器?
    • 究竟是什么问题?你可以运行heroku run rails console。您是否在 heroku 上迁移了数据库?
    • 我收到此错误消息“rake aborted! ActiveRecord::UnknownAttributeError: unknown attribute: admin' 我在seeds.db 中有一个具有管理员状态的用户,但我没有在数据库中为用户创建该表。所以我为管理员创建了表,但仍然收到错误消息。我也重置了数据库并再次尝试了 heroku run rake db:seed 和同样的事情。然后我尝试从我的seeds.db 中删除该用户并重置,但仍然收到相同的错误消息。感谢您的帮助!
    • 不客气!试试heroku run rake db:migrate 看看是否有帮助
    • heroku run rake db:migrate 工作正常,但是当我尝试执行 heroku run rake db:seed 后,我收到相同的错误消息。当我运行 rake db:migrate 时,它​​是否包含种子或它们是分开的?谢谢!
    猜你喜欢
    • 2011-09-08
    • 1970-01-01
    • 2015-05-07
    • 1970-01-01
    • 1970-01-01
    • 2012-08-15
    • 1970-01-01
    • 1970-01-01
    • 2011-10-09
    相关资源
    最近更新 更多