【问题标题】:creating a single instance of a hash and compare to another hash in rails?创建一个散列实例并与rails中的另一个散列进行比较?
【发布时间】:2011-05-27 19:51:48
【问题描述】:

我需要查看一个哈希是否包含在视图中的另一个哈希中。但是我不确定我是否正确地创建了一个哈希,当我将“”放在视图中时,它显示了 y 的所有输出,这让我认为它是一个数组。通常如果它是一个哈希,我只会看到“#”对吗?

我知道 x 应该有 y 但我仍然得到“no y is not in x”

someview.html.erb

<% x = @books.sifi %>
<% y = { :title => spaceship, :author => mark, :price => 9.99, :genre => sifi} %>

<% if x.include?(y) %>
  yes y is in x
<% else %>
  no y is not in x
<% end %>

对 Rails 很陌生,因此我们将不胜感激!谢谢~!

【问题讨论】:

  • 这对于视图来说看起来逻辑太多了。试着把它放在一个助手中。
  • 是的,它有很多逻辑,但这与基于用户操作刷新的 ajax 调用相关,我需要在刷新时运行此逻辑以确定在查看~有没有更好/更简单的方法来做到这一点?
  • 它可以帮助您使用调试助手。 api.rubyonrails.org/classes/ActionView/Helpers/DebugHelper.html

标签: ruby-on-rails arrays hash include


【解决方案1】:

y 是您定义的哈希值。 x 很可能是一个数组。您的代码在这方面很好。要确定对象的类别,您可以这样做:&lt;%= y.class %&gt;

(我假设 sifispaceship 等在您看来可能不是变量?如果是这样,那么请将这些值放入 '' 或 @987654325 @.)

【讨论】:

  • 宇宙飞船、马克、9.99 等等……都是变量。当我将 放在视图中时,我得到“######”,如果我执行类似 之类的操作,它会吐出实际的字符串。让我相信它是一个哈希..
  • 实际上,x 是一个 Hash(es) 数组。因此 x[0] 访问数组 x 中的第一个哈希(“记录”),而 [:title] 访问哈希中该键的值。
  • 那么没有办法比较 x 和 y 吗?我想检查 y-hash 是否存在于 x 哈希数组中...
  • 我已经说过...您的代码进行了该测试,并且可以正常工作。有什么问题?
  • 好吧,我知道 y 哈希存在于哈希的 x 数组中,但它总是说不“y 不在 x 中”.. 当它应该说“是 y 在 x 中”时"
猜你喜欢
  • 1970-01-01
  • 2016-10-17
  • 1970-01-01
  • 2012-10-09
  • 2016-09-04
  • 2014-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多