Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails中从帮助器方法返回值时出现问题_Ruby On Rails_Return Value_Helpermethods - Fatal编程技术网

Ruby on rails Rails中从帮助器方法返回值时出现问题

Ruby on rails Rails中从帮助器方法返回值时出现问题,ruby-on-rails,return-value,helpermethods,Ruby On Rails,Return Value,Helpermethods,我想在每个对象有2行的表中打印一些对象,如下所示: <tr class="title"> <td>Name</td><td>Price</td> </tr> <tr class="content"> <td>Content</td><td>123</td> </tr> 但这并不像预期的那样有效。它只返回最后一个节点-最后一个123 我应

我想在每个对象有2行的表中打印一些对象,如下所示:

<tr class="title">
    <td>Name</td><td>Price</td>
</tr>
<tr class="content">
    <td>Content</td><td>123</td>
</tr>
但这并不像预期的那样有效。它只返回最后一个节点-最后一个
123


我应该怎么做才能使它工作?

记住函数内容标签返回一个字符串。它不会直接写入页面。因此,您使用TDs所做的是:

content_tag :tr do
  content_tag :td do
    link_to h(product.name), product, :title=>product.name
  end
  content_tag :td do
    product.price
  end
end
如果我们对此进行部分评估

content_tag :tr do
  "<td title='Ducks'> <a ...>Ducks</a></td>"
  "<td>19</td>"
end

您必须在TR级别执行相同的操作,只需在第一个content_标记结束后添加一个加号。

如果我在两个
content_标记之间添加一个
+
,我会得到一个
内部服务器错误
语法错误,意外的tSYMBEG,预期为kDO或“{”或“(“
我用
do
-
end
content\u标记
s周围添加了括号,并在其他类似的参数周围添加了括号:
(content\u标记:tr do content\u标记(:td,))+content\u标记(:td,…)end)+(content\u标记:tr do…end)
content_tag :tr do
  "<td title='Ducks'> <a ...>Ducks</a></td>"
  "<td>19</td>"
end
content_tag :tr do
  (content_tag(:td) do
    link_to h(product.name), product, :title=>product.name
  end) + #SEE THE PLUS IS ADDED HERE
  (content_tag(:td) do
    product.price
  end)
end