检查一个密钥在ruby中的哈希值中可用

时间:2015-03-09 10:23:06

标签: ruby-on-rails ruby

我在rails中有一个部分名称测试,我在本地散列中发送一些数据,我需要检查本地散列中是否存在标题。

<%= render partial: "/test", :locals => {
        :title  => "sample title"
      } 
      %>

我试过

locals.has_key? 'title',

但它不起作用。任何人都可以帮忙吗?

4 个答案:

答案 0 :(得分:3)

  

我需要检查locals hash中是否存在title。

那么,你必须做local_assigns.has_key? :some_local

<% if local_assigns.has_key?(:some_local) %>
  <%= some code here %>
<% end %>

我没有从Rails指南中获取文档,但我知道这个功能,这就是我在这里提到它的原因。但是,这里有一些关于1570018970关于local_assigns指南的讨论。

最后在@stefan的帮助下,我找到了方法local_assigns的文档。

答案 1 :(得分:0)

您需要将标题写为string,而不是symbol

<%= render partial: "/test", :locals => {"title"  => "sample title" } %>

现在locals.has_key? "title"将返回true

供参考,请参阅此SO

答案 2 :(得分:0)

你可以写

<%= render '/test', title: 'sample title' %>

在语言环境中执行此操作:

if defined?(title) 
  ...
end

答案 3 :(得分:0)

这是因为'title':title是单独的键。您可以改为使用:title'title'.to_sym