奇怪的数据映射器行为

发布于 2024-09-16 02:36:35 字数 847 浏览 2 评论 0原文

我的控制器中有这段代码:

 @cats = DirCat.all

在视图中:

  %ul#menu
    = @cats.each do |item|
      %li
        = link_to item.title, "/catalog/#{item.id}/"

并得到奇怪的输出:

    <ul id='menu'>
      <li>
        <a href="/catalog/4/">hello</a>
      </li>
      <li>
        <a href="/catalog/5/">hello 1</a>
      </li>
    #<DataMapper::Collection:0x85a9d00>
    </ul>

在 irb 控制台中:

irb(main):002:0> c.each { |item| puts item.title }
hello
hello 1
=> [#<DirCat @id=4 @parent_id=1 @title="hello">, #<DirCat @id=5 @parent_id=1 @title="hello 1">]

如何从我的 html 中取出 #

I have this code in my controller:

 @cats = DirCat.all

And this in a view:

  %ul#menu
    = @cats.each do |item|
      %li
        = link_to item.title, "/catalog/#{item.id}/"

And get strange output:

    <ul id='menu'>
      <li>
        <a href="/catalog/4/">hello</a>
      </li>
      <li>
        <a href="/catalog/5/">hello 1</a>
      </li>
    #<DataMapper::Collection:0x85a9d00>
    </ul>

In the irb console:

irb(main):002:0> c.each { |item| puts item.title }
hello
hello 1
=> [#<DirCat @id=4 @parent_id=1 @title="hello">, #<DirCat @id=5 @parent_id=1 @title="hello 1">]

How can I get out #<DataMapper::Collection:0x85a9d00> from my html?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我家小可爱 2024-09-23 02:36:35

在 HAML 中,= 用于显示标记中事物的输出。 #@cats.each do |item| 的返回值。您想使用 - 来执行代码(但不打印返回值):

- @cats.each do |item|
   %li
     = link_to item.title, "/catalog/#{item.id}/"

In HAML, = is used to display the output of a thing in your markup. #<DataMapper::Collection:0x85a9d00> is the return value of @cats.each do |item|. You want to use -, which executes code (but does not print the return value):

- @cats.each do |item|
   %li
     = link_to item.title, "/catalog/#{item.id}/"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文