1

Rails初心者のビット...これは実際には2つの部分からなる質問です。最初の部分は次のとおりです。次の例の 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

たくさんの HTML を表示してみattributes_table.inspectましたが、メソッドを含むオブジェクト (および to_string メソッドなど) であると想定しています。

私の次の質問は、show メソッドがその attributes_table ブロックで他のことをしないのはなぜですか? たとえば、次の行を前に追加するとattributes_table do:

render 'test'

無視されるだけのようです。ブロックを削除するattributes_tableと、HTML が表示されます。私の最終的な目標は、このレコードと直接関係のないデータをアクティブな管理者に表示することですが、アクティブな管理者が表示できるように構築されているもの以外を表示する方法がわかりません。

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 に答える