我试图在迭代中使用条件,但没有这样做,这里的场景如下:
在这种情况下,如果订单或产品是存在的,应该只显示订单和产品的反馈。
但即使是存在的,也要用odata和pdata来表示反馈。
有人知道为什么吗?
<% @feedbacks.each do |feedback| %>
<% if order.present? && product.present? %>
<% order = feedback.order %>
<% product = order.product %>
<% else %>
<% odata = feedback.odata %>
<% pdata = odata.pdata %>
<% end %>发布于 2017-05-08 18:55:22
我想这就是你想要做的,
<% @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是假定列,请用所需/受尊重的属性替换它们。请通过this了解不同erb标记之间的区别。
比较:
if条件,您试图直接调用order和product,这将引发与feedback相关的错误。<% %>只是执行ruby代码,您想要打印数据,所以需要使用<%= %>。https://stackoverflow.com/questions/43855127
复制相似问题