我正在构建一个允许人们提交事件的Rails 3.1应用程序。活动的其中一个领域是场地。在创建/编辑表单中,venue_name字段具有自动完成功能,因此它显示具有类似名称的场所,但用户可以输入任何名称。
提交表单时,我在将场地附加到事件模型时使用find_or_create_by_name。
我之所以这样做,是因为我们无法保留完整的场地清单,而且我不想阻止人们提交活动,因为场地并非如此在列表中。
问题在于,我们很可能会随着时间的推移而重复,例如#34; Venue Name"和#34;场地名称"或任何其他可能性。
我想我可能只需要创建一个管理工具,允许管理员查看最近的场地,如果他/她认为他们重复搜索/选择一个主记录并拥有重复记录&#39 ; s关联复制到主记录,一旦成功删除重复记录。
这是一个好方法吗?在数据操作方面,最好在事务中处理这个问题吗?是否最好在某种实用程序类中添加此功能 - 或者直接在Venue模型中添加?
感谢您的时间。
答案 0 :(得分:0)
如果我打算组建一个这样的系统,我可能会尝试找到一个可以与每个场地相关联的唯一标识符 - 可能是地址或电话号码?
所以,如果我有一个电话号码为503-555-1212的“The Clubhouse”,并且有人试图输入一个名为“Clubhouse”的新会场,电话号码为503-555-1212,我可能会带他们去插页式页面,我问他们“你的意思是这个位置吗?”
除此之外,我可能会首先要求提供电话号码或地址,然后提供可能的匹配列表以及创建新地点的选项。
否则,您在管理员级别引入了很多潜在的错误,并且您遇到了可伸缩性问题。如果你的管理员每个月要检查10个条目,也许不是那么糟糕 - 但是如果你的应用程序起飞并且这个数字变为1000,那就快速无法管理了!