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了解更多信息。
为什么视图中的某些实例变量没有“@”符号?这是 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了解更多信息。