5

複数のコンポーネントを含むパッケージがあります(バンドルを介して has_many を使用してリンクされています)

ActiveAdmin で、パッケージを表示するときに、それにリンクされているすべてのコンポーネントを表示できるようにしたい

したがって、次のような show メソッドがあります。

show do
 attributes_table do
  row :description

  row 'Components' do |n|
     package.components.each do |component|
       #debugger
       component.name
     end
  end
 end
end

ページを表示すると、各レコードの完全なバージョンが表示されます (以下に示すのはそのうちの 1 つですが、コンポーネントと同じ数があります)。

[#<Component id: 2, component_token: "6e9be0b0-71c0-012f-d523-00254bca74c4", name: "Exercise Module", description: "This is the exercise module", created_at: "2012-04-26 11:25:20", updated_at: "2012-04-26 11:25:20">]

コメントした時点でデバッガーを停止すると、component.name の値は「Exercise Module」として表示されますが、それはショーに出力されるものではありません。実際、ActiveAdmin はそのコンポーネント内のすべてを無視しているようです。 | | ブロック。

レコード全体ではなく、レコード属性を表示するにはどうすればよいですか?

ありがとう

4

1 に答える 1

17

行がこの行の出力を示し、package.components.each {|component| ... }それがコレクションであるため、発生しています

これを試して:

show do

 attributes_table do
  row :description

  row 'Components' do |n|
     package.components.map(&:name).join("<br />").html_safe
  end
 end

end

またはあなたが好む他の結合文字列:)

于 2012-04-26T12:12:17.833 に答える