Rails 带有可选变量的部分不工作
Rails partial with optional variable not working
我不确定这里发生了什么,但以下会在渲染时引发错误:
<%= render 'clients/clients_table', special: true %>
在我的部分我有:
<% if defined?(:special) %>
<p><%= special %></p> <!-- line with error -->
<% else %>
<p>No</p>
<% end -%>
这会抛出错误:
undefined local variable or method `special' for #<#<Class:0x007fa20fbb0310>:0x007fa20cb986a0>
当我尝试显示 local_assigns.has_key?(:special)
时,它也显示 false
。知道发生了什么事吗?
我总是建议在 locals:
键下而不是直接发送变量。也许试试这个:
<%= render 'clients/clients_table', locals: {special: true} %>
同样在你的部分,这个 defined?(:special)
是不正确的,因为它永远是真实的
defined?(:special)
#=> "expression"
而是使用 local_assigns
例如
<% if local_assigns[:special] %>
defined?(:special)
检查是否定义了 符号 :special
。一直都是。
您想检查 变量 special
是否已定义:defined?(special)
我不确定这里发生了什么,但以下会在渲染时引发错误:
<%= render 'clients/clients_table', special: true %>
在我的部分我有:
<% if defined?(:special) %>
<p><%= special %></p> <!-- line with error -->
<% else %>
<p>No</p>
<% end -%>
这会抛出错误:
undefined local variable or method `special' for #<#<Class:0x007fa20fbb0310>:0x007fa20cb986a0>
当我尝试显示 local_assigns.has_key?(:special)
时,它也显示 false
。知道发生了什么事吗?
我总是建议在 locals:
键下而不是直接发送变量。也许试试这个:
<%= render 'clients/clients_table', locals: {special: true} %>
同样在你的部分,这个 defined?(:special)
是不正确的,因为它永远是真实的
defined?(:special)
#=> "expression"
而是使用 local_assigns
例如
<% if local_assigns[:special] %>
defined?(:special)
检查是否定义了 符号 :special
。一直都是。
您想检查 变量 special
是否已定义:defined?(special)