Controller Rails 5:局部形式的局部变量
为什么视图中的某些实例变量没有“@”符号?Rails提供了一种方便,可以使用与控制器名称匹配的实例变量,还是其他东西在起作用 例: 拾取控制器.rbController Rails 5:局部形式的局部变量,controller,instance-variables,Controller,Instance Variables,为什么视图中的某些实例变量没有“@”符号?Rails提供了一种方便,可以使用与控制器名称匹配的实例变量,还是其他东西在起作用 例: 拾取控制器.rb @pick = Pick.new @show = Show.new <%= pick.class %> // no exception raised <%= show.class %> // "undefined local variable or method `show'" exception raised <
@pick = Pick.new
@show = Show.new
<%= pick.class %> // no exception raised
<%= show.class %> // "undefined local variable or method `show'" exception raised
<%= render 'form' %>
<%= render 'form', person: @person %>
\u form.html.erb
@pick = Pick.new
@show = Show.new
<%= pick.class %> // no exception raised
<%= show.class %> // "undefined local variable or method `show'" exception raised
<%= render 'form' %>
<%= render 'form', person: @person %>
//未引发异常
//引发“未定义的局部变量或方法'show'”异常
这是Rails 5的一个变化。默认视图文件现在将局部变量传递给表单partial
而不是这个
new.html.erb
@pick = Pick.new
@show = Show.new
<%= pick.class %> // no exception raised
<%= show.class %> // "undefined local variable or method `show'" exception raised
<%= render 'form' %>
<%= render 'form', person: @person %>
这是新的默认设置
new.html.erb
@pick = Pick.new
@show = Show.new
<%= pick.class %> // no exception raised
<%= show.class %> // "undefined local variable or method `show'" exception raised
<%= render 'form' %>
<%= render 'form', person: @person %>
有关更多信息,请参见此