15

サイトの管理インターフェース用にrails_adminを設定しました。

モデルの1つについて、追加の列を表示したいと思います。

モデルに名前、電話番号、メールアドレス、画像のURL、ランクなどの属性があるとします(学生など)。次に、列を表示する必要があります:名前| ランク| プレビュー(追加列)

プレビュー列に、各「学生」の属性(電子メール、画像、URLなど)に基づいてレンダリングされたHTMLを表示したいと思います。

編集/更新/作成用のパーシャルを含めて、パーシャルに従ってフィールド/フォームを提供する方法を見つけました。しかし、partialを含めるのと同じ実装は、list/showで失敗します。

モデルのリスト/表示ビューで、レンダリングされたコンテンツを表示するためにパーシャルを追加する方法はありますか...?

編集:コードが追加されました

config.model Utility do
   list do
     field :code
     field :priority
     field :name
     field :url
     field :phone
     field :logo
     field :content
     sort_by :priority
     items_per_page 100
   end
end

これは、rails_adminの次の列に表示されます

コード| 優先度| 名前| URL | 電話| ロゴ| コンテンツ

私が欲しいのは コードです| 優先度| プレビュー

プレビュー列で、htmlレンダリングコンテンツを次のように表示します。

blah.html(たとえば、htmlの場合、ここでは1つのページに表示されるようにレンダリングしたいので、管理者ビューにも表示できます)

<div class="blah">
  <%=util.name%> <%=util.phone%> <%=util.logo%> #usage with proper divs/tags/rendering
</div >
4

4 に答える 4

26
config.model Utility do
  configure :preview do
    pretty_value do
      util = bindings[:object]
      %{<div class="blah">
          #{util.name} #{util.phone} #{util.logo}
        </div >}
    end
    children_fields [:name, :phone, :logo] # will be used for searching/filtering, first field will be used for sorting
    read_only true # won't be editable in forms (alternatively, hide it in edit section)
  end



  list do
    field :code
    field :priority
    field :preview
  end

  show do
    field :code
    field :priority
    field :preview
  end

  # other sections will show all fields
end

概要:

表示/リストは、出力にパーシャルを使用しません。最後のオーバーライドポイントはpretty_valueです。

于 2012-04-23T13:33:03.090 に答える
7

Rails Adminは、これらを「仮想」フィールドタイプと呼びます。最も簡単な方法は、モデルでメソッドを作成し、それをリスト/表示で参照することです。

class ModelName < ActiveRecord::Base

  def invite_link
    %{<a href="http://site.com/#{self.uid}">invite link</a>}.html_safe
  end

  rails_admin do
    configure :invite_link do
        visible false # so it's not on new/edit 
    end

    list do
      field :name
      field :invite_link
    end

    show do
      field :name
      field :invite_link
    end
  end
end
于 2013-05-09T23:52:04.287 に答える
-1
class Utility < ActiveRecord::Base 
  def preview
    name  
  end
end

config.model Utility do
  configure :preview do
    pretty_value do
      util = bindings[:object]
      %{<div class="blah">
          #{util.name} #{util.phone} #{util.logo}
        </div >}
    end
    children_fields [:name, :phone, :logo] # will be used for searching/filtering, first field will be used for sorting
    read_only true # won't be editable in forms (alternatively, hide it in edit section)
  end



  list do
    field :code
    field :priority
    field :preview
  end

  show do
    field :code
    field :priority
    field :preview
  end

  # other sections will show all fields
end
于 2013-12-18T07:39:55.957 に答える
-1
class ModelName < ActiveRecord::Base
  rails_admin do
    list do
      field :job_title
      field :required_experiance
      field :salary 
      field :technical_skills
      field :non_technical_skills     
    end

    create do
      field :job_title, :enum do
        help 'Please select Job Title'
        enum do
          ['Business Analyst', 'Trainee Business Analyst', 'Mobile/Web Developer',
           'iOS Developer', 'Graphic Designer', 'System Administrator', 'Content Writer']
        end
      end

      field :job_type do
        help 'e.g. Developer, Management'
      end

      field :undergraduate_degree, :enum do
        help 'Please select UG Degree'
        enum do
          [ 'BE', 'BCA', 'B.Tech','BCs', 'BSc', 'BBA', 'BA', 'BCom', 'BSL']
        end 
      end

      field :postgraduate_degree, :enum do
        help 'Please select PG Degree'
        enum do
          [ 'ME', 'MCA', 'M.Tech', 'MCs', 'MSc', 'MBA', 'MCM', 'MMM', 'MA', 'MCom']
        end 
      end

      field :required_experiance, :enum do
        help 'Please select Year'
        enum do
          [ 'Select Year', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10']
      end 
    end
  end
end
于 2014-04-05T12:50:16.547 に答える