Rails 5:局部变量形式

Tra*_*ith 3 controller instance-variables

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

前任:

picks_controller.rb

@pick = Pick.new
@show = Show.new
Run Code Online (Sandbox Code Playgroud)

_form.html.erb

<%= pick.class %> // no exception raised
<%= show.class %> // "undefined local variable or method `show'" exception raised
Run Code Online (Sandbox Code Playgroud)

Tra*_*ith 5

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

而不是这个...

新的.html.erb

<%= render 'form' %>
Run Code Online (Sandbox Code Playgroud)

这是新的默认...

新的.html.erb

<%= render 'form', person: @person %>
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅此拉取请求