2012-04-05 66 views
12

我已經爲我的站點的管理界面設置了rails_admin。Rails Admin修改列表/顯示視圖以添加新的/自定義列

對於其中一個模型,我想顯示一個額外的列。

說我的名字,電話,電子郵件,圖片網址,排名等屬性在我的模型(說學生)。 然後我必須顯示列:名稱|排名|預覽(附加列)

在預覽列中,我想根據每個'學生'的屬性(電子郵件,圖片,網址等)顯示一些呈現的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

代碼欄|優先|名稱|網址|電話|徽標|內容

我想要的是 代碼|優先|預覽

其中在預覽專欄中,我想顯示爲HTML渲染內容:

blah.html(只是如HTML例如,在這裏,我想它會顯示在一個方式來呈現頁面,所以它是像樣管理視圖太)

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

請更具體。顯示一些代碼。 – 2012-04-05 12:15:12

+0

我已經添加了代碼並指定了詳細的要求.. – 2012-04-05 13:23:55

回答

21
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 

摘要:

顯示/李st不要使用partials來輸出。最重要的是pretty_value

+0

如果「預覽」應該包含一些belongs_to模型的某些數據會怎麼樣?讓我們說Payout.Account.Currency.code?我使用了「%{#{payout.account.currency.code}}」而不是「#{util.name}#{util.phone}#{util.logo}」,並且它可以正常顯示,但是我可以'噸'排序'代碼工作。如何讓child_fields在關聯的模型字段上工作? – Zelid 2012-05-24 12:51:47

+1

這對我不起作用,請參閱我的答案 – Evan 2013-05-09 23:47:19

+0

這將起作用,但您需要在實用工具模型中添加一個方法,預覽並返回所需的任何值。 – SKR 2013-12-18 06:27:13

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 
+0

儘管這會起作用,但最好避免將此視圖邏輯放入模型中。 – hcarreras 2016-07-06 12:24:41

-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 
+0

從預覽方法中,返回任何非空值。 – SKR 2013-12-18 07:40:40

-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