form_for和form_tag有什么区别?form_remote_for和form_remote_tag有什么不同吗?
Answers:
form_for
首选一个activerecord对象作为它的第一个arg;它允许轻松地创建或编辑表单(要在“新”视图中使用它,您应该在控制器中创建一个空实例,例如:
def new
@foo = Foo.new
end
它还将一个form变量传递给该块,因此您不必在表单本身内重复模型名称。这是编写模型相关表格的首选方式。
form_tag
只需创建一个表单标签(当然,并且静默地准备一个防伪隐藏字段,例如form_for
);最好用于非模型表单(我实际上仅将其用于简单的搜索表单等)。
同样,form_remote_for
和form_remote_tag
适合于模型有关的各种形式,而不是相关的形式分别进行建模,但是,而不是在一个标准的HTTP方法结束(GET,POST ...),他们称为AJAX方法。
所有这些以及更多内容都可以在FormHelper中使用 和PrototypeHelper 参考页。
编辑2012-07-13
Prototype
已从rails
很久以前删除,并且远程表单已完全更改。请参阅第一个链接,与reguard的:remote
两个选项form_for
和form_tag
。
form_for
“首选” ActiveRecord对象是什么意思?