質問

RailsAdminがRails 3アプリのために実行されており、2つのモデルが販売と商品を備えています。 2つの間にはHABTM関係があります。 RailSadminでは、販売が追加または編集されると、利用可能な商品のリストが通常の方法で表示されます。ただし、商品の「名前」列のみが表示されます。私には、リストが意味をなさないために価値を含める必要がある別のコラムがあります。これをRailSadminインターフェイスに追加するにはどうすればよいですか?

RailSadminを理解しています ドキュメント フィールド宣言は、現在のレコードインスタンスを含むバインディングハッシュにアクセスできるとしますが、これを実装する方法の例は見つかりません。助けてくれてありがとう。

役に立ちましたか?

解決

このためにカスタムオブジェクトラベルメソッドを使用することを提案します。 RailSadmin構成は次のようになるかもしれません:

config.model Merchandise do
  object_label_method
    :custom_label
  end
end

ActiverCordモデルには、インスタンスラベルの方法が含まれています。

class Merchandise < ActieRecord::Base
  def custom_label
    "#{self.label} #{self.another_column} #{self.another_column2}"
  end
end

これは、利用可能なバインディング変数に関する質問には答えませんが、ルートの質問に対処することを願っています。カスタムフィールドビューでアクセス可能な変数を確認する場合は、〜/rails_admin/app/views/rails_admin/main/のビューを確認できます。クイックグレップは、バインディング[:オブジェクト]がこれらのビューでアクセスできることを示していますが、IIRC、アクセス可能な他のいくつかのバインディング変数があります。

他のヒント

少なくとも次のオブジェクトが利用可能です。

bindings[:object] # the actual object
bindings[:view]   # you can access view helpers here
bindings[:controller]  # you can access the controller

この場合に必要なのはです bindings[:object]

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top