Ruby on rails Rails如何在迭代中生成条件?
我试图在迭代中使用条件,但没有成功,下面是场景: 在这种情况下,如果订单或产品存在,则应仅显示带有反馈的订单和产品 但即使存在,也要用odata和pdata显示反馈 有人知道为什么吗Ruby on rails Rails如何在迭代中生成条件?,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我试图在迭代中使用条件,但没有成功,下面是场景: 在这种情况下,如果订单或产品存在,则应仅显示带有反馈的订单和产品 但即使存在,也要用odata和pdata显示反馈 有人知道为什么吗 <% @feedbacks.each do |feedback| %> <% if order.present? && product.present? %> <% order = feedback.order %> <
<% @feedbacks.each do |feedback| %>
<% if order.present? && product.present? %>
<% order = feedback.order %>
<% product = order.product %>
<% else %>
<% odata = feedback.odata %>
<% pdata = odata.pdata %>
<% end %>
我想这就是你想要做的
<% @feedbacks.each do |feedback| %>
<% if (order = feedback.order).present? && (product = feedback.product).present? %>
<%= order.title %>
<%= product.title %>
<% else %>
<%= (odata = feedback.odata).name %>
<%= odata.pdata.name %>
<% end %>
<% end %>
注意:title
和name
是假定列,请将其替换为所需/受尊重的属性。
请通读以了解各种erb标签之间的差异
比较:
- 对于
条件,您试图直接调用if
和order
,这将抛出错误,因为它们与product
反馈相关
只执行ruby代码,您想要打印数据,因此需要使用- 不使用变量时,无需将它们保存在变量中。我在检查条件中是否存在对象时保存了它们,并且可以在不查询数据库的情况下显示它们
end
。每个
执行do
和end
之间的块。谢谢你,Alejandro没有遗漏的是有更多的代码,所以,我只是跳过那部分好的,请看一下@Md.Farhan Memon的asnwer,请注意这个答案的缩进,并用这个标识编辑你的帖子。是的,但是这句话和我说的不一样?现在为#@bookaka显示未定义的局部变量或方法“product”检查更新的答案,如果仍然有错误,哪一行?@md farhan memon ok。那么,你的方法和我的有什么不同?看起来是一样的