gpt4 book ai didi

jquery - rails : Saving an ordered list with empty values

转载 作者:行者123 更新时间:2023-12-01 00:14:17 24 4
gpt4 key购买 nike

假设:我想要 32 个部分,每个部分有 4 个“槽”。每个插槽可以容纳可拖动列表中的一个人。

保存其位置(并按用户召回)并将空格或“槽”保留在正确位置的最佳方法是什么?

现在,我已经提供了类似 fiddle 的东西,但是在保存时,我只是将 data-id 作为数组发送,因此它保存了他们的订单,但不接受考虑到空格......当然,我读回列表的方法只返回数组。 IE。如果我在创建时有: Tim,empty,Bob,empty 我的 Controller 会保存 ['Tim','Bob'] 并且当用户重新加载时,他们会看到:Tim,Bob,empty,empty

所以这是一个双面问题:

1) 如何保存用户列表包括空白以及使用rails/mongoid 执行此操作的最佳方法是什么? 再说一次,我目前知道如何保存,我只是不知道使用数组/对象或什么更好......

2)如何正确重建/读取/加载列表?

Fiddle :想象一下,这还有 31 个其他部分需要填充...这只是其中一个部分。

编辑

如果我要使用像 acts_as_list 这样的 gem,每个用户的项目占一行会不会很糟糕(因为每个用户将有 128 个条目)?在我看来,这会让 mongo 集合有太多文档,但我对 mongodb 的理解也很差。

user_id, 
pick_id,
position

而不是

user_id,
picks [
"pick_id_1234",
"pick_id_1235",
"pick_id_1236"
]

最佳答案

我没有使用过 Mongoid,所以我无法提供该部分的具体编码;但我可以给你一些结构性的想法

<小时/>

保存

无论如何,您仍然需要以某种方式保存列表

因为您没有提供足够的上下文,所以我将假设您希望永久维护列表的状态(使用数据库)。如果您希望该列表是临时的(即您想在步骤等之间移动),我建议 sessions

数据库

如果您要保存到数据库,则过程会相对简单。我将在这里使用标准的 ActiveRecord,因为我不知道 mongoid(抱歉):

模型

#app/models/list.rb
Class List < ActiveRecord::Base
belongs_to :section
belongs_to :user
end

#app/models/user.rb
Class User < ActiveRecord::Base
has_many :lists
end

#app/models/section.rb
Class UserListPosition < ActiveRecord::Base
has_many :lists
has_many :users, through: :lists
end

架构

users
id | name | email | created_at | updated_at

sections
id | details | about | section | created_at | updated_at

lists
id | section_id | user_id | created_at | updated_at

Controller

#app/controllers/lists_controller.rb
def new
@list = 32.times do { List.new } ##needs refactoring
end

def create
@list = List.new(list_params)
@list.save
end

private

def list_params
params.require(:list).permit(:section_id, :user_id)
end

观看次数

#app/views/lists/new.html.erb
<%= form_for @list do |f| %>
<% Section.all.each do |section| %>
##inputs here
<% end %>
<%= f.submit %>
<% end %>

关于jquery - rails : Saving an ordered list with empty values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21924589/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com