每个类别的注册模型不同 Rails

Different registration model for each category Rails

我正在尝试建立我的作品集,并且我正在开发一个在线图书商店。每个用户都可以注册自己的书,其中书的型号不同。我想为不同的类别(和子类别)制作多个注册表,但我不知道如何。

我是 Rails Ruby 的新人,我尝试 google 但我没有发现任何有用的东西。而且,我真的不知道要搜索什么,因为我没有足够的知识。有人可以举个例子吗?好想弄明白

我的主要问题之一是处理我的数据库。由于每个类别都有自己的形式,所以我的书中应该有不同的栏目table。同时,我了解到专栏可能会影响网站速度。我是否必须为每个类别创建一个 table,或者我可以简单地添加许多列并将默认值设置为 nil?

我找到的一些资源:

A better method of handling multistep forms in rails

Multi Model Sign-up Wizard

Creating a sign up form flow in Ruby on Rails Part 1

听起来你的第一个问题是如何设计数据库。虽然从速度的角度来看我不担心有太多的列(你需要有很多列和行才能成为问题),但有大量空列是数据库设计错误的标志。

我建议使用 book table 包含公共字段(id、标题、ISBN、主要作者或主要作者 ID、概要、category_type)。然后你可以有相关的 tables,它们使用与一本书的 1:1 关系,例如book_engineeringbook_law

当您有一个新的表单页面时,您将不知道要显示哪个表单,因为用户还没有输入任何数据。或许您可以让他们设置常用的图书数据,当他们从 drop-down 类别菜单中 select 时,您会呈现 category-specific 字段作为响应。提交表格后,您的 INSERT 将被发送到 book table 加上当时确定的 sub-category table。

最后,要考虑的另一件事是您是否可以在输入任何详细信息之前了解图书类别。例如,如果你有一个 link/button 表示 "Click here to enter a law book" 那么你可以重定向到带有 ?category_type=4 查询字符串的表单并呈现所有字段(包括 subtable 字段)马上。这真是UI设计的问题。可能值得考虑是否允许用户也更改类别类型,在这种情况下,您必须删除一个子 table 行并添加另一行。

我真的不知道你的问题是不是关于关联(表之间的关系),如果是请看:http://guides.rubyonrails.org/association_basics.html

如果更多关于嵌套表单(例如从那里创建模型之间的关联),请参阅:http://railscasts.com/episodes/196-nested-model-form-revised

(如果您在网上搜索嵌套模型或嵌套表单指南,您可能会找到其他更好的教程)

希望对你有所帮助。