2010-01-05 89 views
6

符号作为参数,我明白做这样的事情是什么时,传递给form_for方法:Ruby on Rails的:在的form_for

<% form_for(@user) do |f| %> ... <% end %> 

如果@user被设置在控制器中。这很明显。

但是当我们通过:user会发生什么,正如我在许多例子中看到的那样?

<% form_for(:user) do |f| %> ... <% end %> 

什么时候应该使用符号版本?

+0

可能重复[实例变量与符号在轨道上的红宝石(窗体\ _for)](http://stackoverflow.com/questions/957204/instance-variable-vs-symbol-in-ruby-on-rails -form-for) – 2014-02-17 01:43:47

回答

7

使用符号将生成:

<form action="/users" method="post"> 

使用对象@user设为新的你:

<form action="https://stackoverflow.com/users/create" class="new_user" id="new_user" method="post"> 

如果设置@user到别的它将改变产生的表单标签,当然是 ...自己尝试一下。

最后,这一切都取决于你想要做什么。如果在同一页面上有多个:用户表单,则可能需要使用此符号。

+0

我确实给了这个测试,但是action的值并没有改变(它仍然是'/ users')。尽管,我得到了和你在类和id的代码块中提到的一样的东西。 – Mark 2017-11-20 17:22:20