5

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

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

4

2 に答える 2

5

少なくとも次のオブジェクトを使用できます。

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

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

于 2012-07-18T15:09:15.310 に答える
5

これには、カスタムオブジェクトラベルメソッドを使用することをお勧めします。RailsAdminの構成は次のようになります。

config.model Merchandise do
  object_label_method
    :custom_label
  end
end

また、ActiveRecordモデルには、インスタンスラベルのメソッドが含まれます。

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

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

于 2012-02-22T04:46:35.973 に答える