创建表单以将新书添加到数据库

表单似乎很容易使用。 这是我网页上的几个框,我可以在其中输入一些信息。然后,单击提交,现在输入的所有内容都被保存,告知我在输入信息或通知时可能犯的错误。我输入的信息可能已经存在。 听起来很简单,但是进入使它正常运行所需的实际代码,就可以用您想要的所有方式本身就是另一个整体。 将一本新书添加到Web数据库时,可能需要考虑一些可能的事情。

让我们假设数据库已经构建,我们要做的就是创建一个新表单,该表单允许用户添加他们想查看的书。 您要做的第一件事是构建表单。 我将使用测试驱动开发(TDD)来确保我的表单以我想要的方式构建。 您首先需要构建一些表单代码。 这可以通过几种方法来完成。 最常见的是:

您通常会看到这种情况,但是键入所有内容可能会非常麻烦,尤其是当表单可能需要更大时。 这是我们在创建此类表单时应在屏幕上看到的内容。

记住每行代码需要的每条信息也可能很困难。 Rails 5.1.6拥有一个非常了不起的表单生成器,可以节省您的时间和键入时间,并且只需花费一半的工作和记忆即可为您完成所有这些工作。 这是我使用Rails“ form_for”方法构建的表单的示例,该方法创建了我只需要少量信息的表单。

如您所见,我需要记住的是,创建表格时我需要erb标签()中的所有内容。 第一个将是form_for。 在这个erb标签中,form_for是用于创建表单的方法。 @book是我们为其创建表单的对象。 从某种意义上说,这种读物像英语,我想为一本新书创建“ form_for”。 两个管道(| |)之间的“ f”变量将代表将存储在数据库中的信息。 对于代码行“ f.label:title”,我们将在其中存储信息的框的标签上看到。“ f.textfield:title”是用户输入标题名称的位置。 这样显示在屏幕上。

请注意,它如何为我们大写标签并将其放置在文本字段之外,以表示这是您必须输入标题的地方。 与后一个示例相比,这对用户可能更友好,因为一旦单击该字段,您将不再知道应该与该文本字段有关的信息。 这非常有帮助,但是我们遇到了一些较小的外观问题。 对于其他标签,我不喜欢它们的显示方式。

我真的不喜欢它显示“作者”,因为如果只有一位作者该怎么办。 我希望它是单数或复数。 我希望标签说“作者”,我也希望它也显示“年发布”而不是“年发布”,但是当使用“ f”作为标签传递时,我遇到了一个小问题”变量。 它需要与文本字段键匹配。 因此,如何在仍使用“ form_for”方法的同时解决此问题。 简单的答案是,我们仅使用普通标签代替“ f.label”。 这看起来像:

这同样适用于作者。 注意,我必须指定标签是“ book_year_pub”的标签。这就是我们连接到文本字段“:year_pub”中的键的方式。它们都意味着同一件事,只是做事方式不同。 我想在屏幕上显示“标签发布年”,标签标签的两个闭合胡萝卜之间。 您需要对“作者”执行相同的操作。 完成此操作后,应正确标记我们的新表格并准备接收信息。 它应该遵循以下思路:

还需要注意的是“提交”按钮。 我不需要放置任何其他有关我想要显示的信息。 Rails发挥了不可思议的作用,并根据我有书本的事实推断出我正在写书。 我提供的唯一信息是,其余的全部由我来处理。 您的结果可能像第一个示例那样连续出现,但这只是一些CSS样式,它可能会使用更多样式,但那以后就可以了。 希望您喜欢阅读并发现此内容有益。

Interesting Posts