我正在尝试构建待办事项列表应用程序,当用户通过Devise注册时,也会同时创建预先填充的待办事项列表。
我设置了标准的Devise控制器(确认,omniauth_callbacks,密码,注册,会话和解锁),以及to_do_list控制器和list_item控制器。同样,我有User,ToDoList和ListItem模型。
默认情况下,用户属于待办事项列表,list_items也属于to_do_list。 (稍后,多个用户需要属于同一个待办事项列表。)我将在何处以及如何将创建一个to_do_list和多个list_items的代码放在哪里?
谢谢!
答案 0 :(得分:0)
创建逻辑(以及CRUD的其余部分)应放在用于显示列表的视图的控制器中。
另外我认为你可能会倒退,todo列表应该属于用户。因此,如果您要找到一个列表,您可以通过User - >找到它。列表
答案 1 :(得分:0)
这样的事情会起作用:
<强> user.rb 强>
after_create :create_list
def create_list
@list = ToDoList.create(user_id: self.id)
# add list items to @list
end
http://apidock.com/rails/ActiveRecord/Callbacks/after_create
after_create()
在Base.save之后调用尚未保存的新对象(不存在记录)。请注意,此回调仍包含在围绕保存的事务中。例如,如果此时调用外部索引器,则不会在数据库中看到更改。
<强>更新强>
<强> to_do_list.rb 强>
after_create :create_list
def create_list_items
# let's say you have an array of list_items
items = ['item1', 'item2', 'item3', 'item4']
items.each do |item|
ListItem.create(content: item, to_do_list_id: self.id)
end
end