Ruby 在 Rails 上,查看每个循环中的代码
Ruby On Rails, code in each loop in view
我有个小问题...
我的看法:
--html---
<% @things each do |thing| %>
<% other = @others.find_by(:ID == thing.ID)%>---->it runs just once. Why?
<div>
<p>thing.ID</p> ---------------> This is correct.
<p>other.NAME</p> -------------> But it isn't. It is always same (fisrt value..).
</div>
<%end%>
--html--
我喜欢这个,other.NAME 也发生了变化。感谢您的帮助!
当你需要 =>
时,你有 ==
:ID == thing.ID
被评估为 false,这导致:
@others.find_by(false)
每次都 return 第一条记录。
此外,您的属性命名不标准 - 按照 rails 惯例,它们应该是小写字母:other.name
您可以使用以下查询来查找 'other'
other = @others.find_by_ID(thing.ID)
如果找不到记录,它将 return 'nil' 而不是 'record not found' 错误。
您可以使用
other.try(:NAME)
other.name 如果 'other = nil'.
会报错
我有个小问题... 我的看法:
--html---
<% @things each do |thing| %>
<% other = @others.find_by(:ID == thing.ID)%>---->it runs just once. Why?
<div>
<p>thing.ID</p> ---------------> This is correct.
<p>other.NAME</p> -------------> But it isn't. It is always same (fisrt value..).
</div>
<%end%>
--html--
我喜欢这个,other.NAME 也发生了变化。感谢您的帮助!
当你需要 =>
==
:ID == thing.ID
被评估为 false,这导致:
@others.find_by(false)
每次都 return 第一条记录。
此外,您的属性命名不标准 - 按照 rails 惯例,它们应该是小写字母:other.name
您可以使用以下查询来查找 'other'
other = @others.find_by_ID(thing.ID)
如果找不到记录,它将 return 'nil' 而不是 'record not found' 错误。 您可以使用
other.try(:NAME)
other.name 如果 'other = nil'.
会报错