Rails 5: 部分形式的局部变量

Rails 5: Local variables in form partial

为什么视图中的某些实例变量没有“@”符号?这是 Rails 提供的便利,其中与控制器名称匹配的实例变量可用,还是这里有其他东西在起作用?

例如:

picks_controller.rb

@pick = Pick.new
@show = Show.new

_form.html.erb

<%= pick.class %> // no exception raised
<%= show.class %> // "undefined local variable or method `show'" exception raised

这是 Rails 5 中的更改。默认视图文件现在将局部变量传递给部分形式。

而不是这个...

new.html.erb

<%= render 'form' %>

这是新的默认值...

new.html.erb

<%= render 'form', person: @person %>

查看此pull request了解更多信息。