Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 从自动完成表单修复rails应用程序中的重复记录_Ruby On Rails - Fatal编程技术网

Ruby on rails 从自动完成表单修复rails应用程序中的重复记录

Ruby on rails 从自动完成表单修复rails应用程序中的重复记录,ruby-on-rails,Ruby On Rails,我正在构建一个Rails 3.1应用程序,允许人们提交事件。活动的一个字段是场地。在创建/编辑表单上,“场馆名称”字段具有自动完成功能,因此它显示具有类似名称的场馆,但用户可以输入任何名称 提交表单时,在将场地附加到活动模型时,我使用find_或create_by_name 我这样做是因为我们不可能保存一份完整的场馆列表,我不想阻止人们提交活动,因为场馆不在列表中 问题是,随着时间的推移,我们很可能会得到重复的场馆名称和场馆名称,或者其他任何数量的可能性 我在想,我可能只需要创建一个管理工具,允

我正在构建一个Rails 3.1应用程序,允许人们提交事件。活动的一个字段是场地。在创建/编辑表单上,“场馆名称”字段具有自动完成功能,因此它显示具有类似名称的场馆,但用户可以输入任何名称

提交表单时,在将场地附加到活动模型时,我使用find_或create_by_name

我这样做是因为我们不可能保存一份完整的场馆列表,我不想阻止人们提交活动,因为场馆不在列表中

问题是,随着时间的推移,我们很可能会得到重复的场馆名称和场馆名称,或者其他任何数量的可能性

我在想,我可能只需要创建一个管理工具,允许管理员查看最近的场馆,如果他/她认为它们是重复的,则搜索/选择主记录,并将重复记录的关联复制到主记录,一旦成功删除重复记录

这是一个好方法吗?在数据操作方面,最好在事务中处理这个问题吗?最好将此功能添加到某种实用程序类中,还是直接添加到场馆模型中


谢谢您的时间。

如果我要建立一个这样的系统,我可能会尝试找到一个唯一的标识符,我可以与每个场馆关联——也许是地址或电话号码

因此,如果我有一个电话号码为503-555-1212的俱乐部,有人试图输入一个新的地点,名为俱乐部,电话号码为503-555-1212,我可能会把他们带到一个空白页面,在那里我问他们你指的是这个位置吗

除此之外,我可能会先要一个电话号码或地址,然后提供一个可能匹配的列表,并选择创建一个新场地


否则,您将在管理级别引入很多潜在的错误,并且会遇到可伸缩性问题。如果你的管理员一个月要审查10条条目,也许还不算太糟——但如果你的应用程序启动了,而且这个数字达到1000条,那么很快就会变得难以管理

我认为你在正确的轨道上。我也会用同样的方式做。谢谢你的回答。现在,我只询问场馆名称,没有其他活动级别的数据。这主要是因为我希望他们在大多数情况下都能找到他们想要的场地。此应用程序的可伸缩性问题减少,因为所有活动都在一个中等城市中进行。如果他们进入一个新的地点,我可以添加一个检查,而不是从autosuggest中选择一个地点来输入电话号码并进行检查。这当然可以减少问题,但我怀疑它是否能完全消除它。我当然知道你是从哪里来的。不过,我认为我仍然赞成添加某种事件级别检查,以防止用户创造性任何时候,当你拥有由用户输入驱动的关键数据时,你都值得一试身手,让一切尽可能地进入最佳状态。归根结底,我认为这里只有两种解决方案:在输入的过程中限制输入,或者在之后解决它。事后管理清理虽然对于边缘情况可能是必要的,但可能不应成为日常操作流程的一部分。