ruby-on-rails - #<Array :> in ActiveAdmin row 的未定义方法 `name'

标签 ruby-on-rails activeadmin

我正在使用 ActiveAdmin,这是我的显示页面:

show do |product|
  attributes_table do
    row :name
    row :photos do
      @photos = product.photos
      @photos.each do |p|
        image_tag(p.photo)
      end
    end
  end
  active_admin_comments
end

我收到此错误:undefined method name' for #<Array:>

在这一行:

@photos = product.photos

为什么以及如何?我什至没有name在照片中。

更新

当我选择一张照片(例如产品的第一张照片)时,它起作用了!真的很奇怪。

更新

这只是重置 WEBRICK ...但现在我遇到了一个新问题。 我的照片保存的网址是 photo:string,当我使用上面的代码时,它会打印:

[#<Photo id: 1, created_at: "2012-08-31 20:34:15", updated_at: "2012-08-31 20:34:15", photo: "innoMicro.jpg", product_id: 3>]

不仅仅是网址..

更新(工作解决方案!)

这是我的最终工作代码:

  show do |product|
    attributes_table do
      row :name
      row :description
      product.photos.each do |p|
        row :photo do
          image_tag(p.photo, :height => '256', :width => '256')
        end
      end
    end
    active_admin_comments
  end

问题是每张照片都有一个新行..我可以将它们全部放在同一行吗?

最佳答案

乍一看,有两件事看起来不太好:

  1. @photos = 产品.照片。为什么是@?这不像您在其他地方需要该实例变量,并且您可能会无意中与 ActiveAdmin 在幕后生成的内容发生冲突。因此,请谨慎行事,将其设为局部变量。最简单的方法:丢失@

  2. image_tag(p.photo) 应变为 image_tag(p.photo.url)

更正这两个错误,并告诉我们它是否已修复,如果没有,新的错误是什么。

希望这有帮助。

关于ruby-on-rails - #<Array :> in ActiveAdmin row 的未定义方法 `name',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12124941/

相关文章:

ruby-on-rails - 将 bool 值设置为 false

ruby-on-rails - 在没有 will_paginate gem 的情况下在 Ruby 中实现分页

css点击时不改变颜色

ruby-on-rails - 如何为具有不同登录页面的同一用户使用 Devise 和 ActiveAdmin

ruby-on-rails - ActiveAdmin:如何覆盖索引 Controller 操作:nil:NilClass 的未定义方法 `base'

ruby-on-rails - 为什么 Active Admin 不能正确排序这个关联列

ruby-on-rails - 如何为多态关联添加过滤器?

css - Bourbon 找不到字体混合(Rails 3.2.2)

ruby-on-rails - Rails ActiveAdmin-更改更新后redirect_to

javascript - 禁用当前方法上的实时事件