我正在从一个教程学习Rails 5.0,在那个教程中它使用了f.object,我对此并不熟悉. f.object被传递到ERb,进入一个处理错误处理的方法.
我知道f是传递给表单的记录的对象/实例.但我不明白的是f.object.
edit.html.erb(带表单的文件):
<%= form_for(@section) do |f| %> <%= error_messages_for(f.object) %> <table summary="Subject form fields"> <tr> <th>Name</th> <td><%= f.text_field(:name) %></td> </tr> <tr> <th>Position</th> <td><%= f.select(:position,1..@subject_count) %></td> </tr> </table> <% end %>
没有HTML表单元素称为对象,这通常是在f之后发生的事情,因此对它可能是什么感到非常恼火.
解决方法
f.object是指作为参数传递给form_for方法的对象.
在你的例子中,f.object返回@section.