大家好,我是Ruby新手。我尝试使用表单生成器创建表单 有什么区别
<%=form_for @post %>
和
<%=form_for :post %>
答案 0 :(得分:2)
form_for
创建了form builder object的实例:
FormBuilder对象与特定模型对象关联 允许您生成与模型对象关联的字段。该 使用form_for或fields_for
时会产生FormBuilder对象
@post
是一个实例变量。 :post
不是
这意味着当您加载<%= form_for @post %>
时,您将使用实例中的数据填充表单构建器对象(允许Rails在出现错误时维护数据等)
如果您对Ruby中的@instance_variables
不确定,可能需要查看Ruby On Rails beginners' guide
答案 1 :(得分:0)
如果你使用符号:发布像
<%=form_for :post %>
然后创建
<form action="/posts" method="post">
如果您使用@post实例
<%=form_for @post %>
然后创建
<form action="/posts/create" class="class_name" id="id_name" method="post">