【发布时间】:2019-04-02 12:46:23
【问题描述】:
我有一个 n00b 问题。我正在使用 Rails 5,并希望在应用程序中有示例数据。当用户创建一个新项目时,该项目应该已经包含用户可以删除或编辑的示例“任务”。
我知道我可以使用 seed.rb 在我的开发环境中创建示例数据。在新用户的生产环境中,最好的方法是什么?如何做?我应该使用 seed.rb、迁移还是 rake 任务?
示例控制器:
def create
@project = Project.new(project_params)
@project.user = current_user
if @project.save
// add sample content
redirect_to @project
else
render :new
end
end
在项目模型中:
belongs_to :user
has_many :tasks, dependent: :destroy
当新用户加入并创建新项目时,如何在用户创建的新项目中自动添加示例“任务”?
更新:
要创建一个任务,我需要一个描述和当前用户的id(我使用的是Devise,所以我可以使用current_user helper),例如:
@project.tasks.create!(description: "hello", user_id: current_user.id)
【问题讨论】:
-
一种解决方案可能是创建一个服务,您将在其中放置示例项目的数据,然后在创建用户时执行此服务(使用参数中创建的用户)。用户将能够删除或编辑此示例项目。此外,当一个已经注册的用户创建一个项目时,您将能够获取示例数据并根据需要将 if 传递给他的新项目
标签: ruby-on-rails