1

有点铁路新手......这真的是一个两部分的问题。第一部分是:以下示例中的 attributes_table 是什么:

  show :title => :name do
    attributes_table do
      row :id
      row :name
      row :username
      row :email
      row 'password reset?' do
        resource.reset_password_sent_at || 'no'
      end
      row :last_sign_in_at
      row :created_at
    end
  end

我试着把attributes_table.inspect它显示给我一堆 HTML,但我假设它是一个带有方法的对象(也许是一个 to_string 方法或类似的东西?)。

我的下一个问题是:为什么 show 方法不对其中的 attributes_table 块做任何其他事情?例如,如果我在之前添加这一行attributes_table do

render 'test'

它似乎被忽略了。如果我删除该attributes_table块,那么它会显示 HTML。我的最终目标是在活动管理员中显示一些不直接相关的数据以及此记录——但我不知道如何显示除了 activeadmin 是为了让我显示的内容之外的任何内容。

4

2 回答 2

2

这不是一个完整的答案,但我看到了一些我想解决的困惑。attributes_table 是一个方法调用。

Ruby 有一堆 DSL,因为括号在 ruby​​ 中是可选的,所以看起来与 ruby​​ 代码不同,但实际上是。使用括号,代码将如下所示:

show(:title => :name) do
  attributes_table() do
    row(:id)
    row(:name)
    row(:username)
    row(:email)
    row('password reset?') do
      resource.reset_password_sent_at() || 'no'
    end
    row(:last_sign_in_at)
    row(:created_at)
  end
end
于 2012-05-15T16:07:34.353 回答
1

1) 以下示例中的 attributes_table 是什么?

attributes_table 用于从表中显式列出所需的属性\列以进行显示操作

2) 为什么 show 方法不对其中的 attributes_table 块做任何其他事情?

诀窍是不要尝试在控制器中使用 Arbre 并渲染一些额外的东西,因为它会变得很混乱。

阅读https://github.com/gregbell/active_admin/blob/master/docs/6-show-screens.md

然后https://github.com/gregbell/active_admin/issues/725

还有http://activeadmin.info/documentation.html

于 2012-05-15T16:01:34.810 回答