📅  最后修改于: 2020-10-20 05:16:16             🧑  作者: Mango
Rails View是一个ERb程序,它通过相互可访问的变量与控制器共享数据。
如果查看库应用程序的app / views目录,您将看到我们创建的每个控制器的一个子目录:book。当使用generate脚本创建同名控制器时,将自动创建这些子目录中的每个子目录。
现在,假设您的Web服务器已启动并正在运行,请在浏览器的地址栏中提供以下输入-
http://localhost:3000/book/list
您收到以下错误消息,因为尚未为控制器中定义的任何方法定义任何视图文件。
Rails让您知道需要为新方法创建视图文件。您在控制器中定义的每个方法都需要有一个与该方法同名的相应RHTML文件,以显示该方法正在收集的数据。
因此,让我们为book_controller.rb中定义的所有方法创建视图文件。
使用您喜欢的文本编辑器创建一个名为list.rhtml的文件,并将其保存到app / views / book。创建并保存文件后,刷新Web浏览器。您应该看到一个空白页;如果不这样做,请检查文件的拼写,并确保它与控制器的方法完全相同。
现在,为了显示实际内容,让我们将以下代码放入list.rhtml中。
There are not any books currently in the system.
These are the current books in our system
- 'show', :id => c.id} -%>
'new' }%>
要执行的代码是检查@books数组中是否包含任何对象。 .blank?如果数组为空,则方法返回true,如果包含任何对象,则返回false。该@books对象是在list方法内的控制器中创建的。
<%=%>标记之间的代码是link_to方法调用。 link_to的第一个参数是要在标记之间显示的文本。第二个参数是单击链接时调用的动作。在这种情况下,它是show方法。最后一个参数是通过params对象传递的书籍的ID
现在,尝试刷新您的浏览器,您将得到以下屏幕,因为我们的图书馆中没有任何书籍。
到目前为止,我们的图书馆中没有任何书籍。我们必须在系统中创建一些书。因此,让我们设计一个与book_controller.rb中定义的新方法相对应的视图。
使用您喜欢的文本编辑器创建一个名为new.rhtml的文件,并将其保存到app / views / book。将以下代码添加到new.rhtml文件中。
Add new book
'create' do %>
:
:
:
'list'} %>
在这里, start_form_tag()方法使用提供给它的所有信息将Ruby代码解释为常规HTML