2012-04-05 26 views
12

Tôi đã thiết lập rails_admin cho giao diện quản trị của trang web của tôi.Rails Admin sửa đổi chế độ xem danh sách/hiển thị để thêm cột mới/tùy chỉnh

Đối với một trong các Mô hình, tôi muốn hiển thị cột bổ sung.

nói rằng tôi có tên, điện thoại, email, url hình ảnh, thuộc tính xếp hạng v.v. trong Mô hình của tôi (nói Sinh viên). Sau đó, tôi phải hiển thị các cột: Tên | Xếp hạng | Xem trước (cột bổ sung)

Trong cột xem trước, tôi muốn hiển thị một số html được hiển thị trên cơ sở các thuộc tính (email, hình ảnh, url, v.v.) cho mỗi 'sinh viên'.

Tôi đã tìm cách bao gồm một phần để chỉnh sửa/cập nhật/tạo để cung cấp các trường/biểu mẫu theo từng phần của chúng tôi. Nhưng việc thực hiện tương tự bao gồm một phần là không trong danh sách/hiển thị.

Vì vậy, có cách nào tôi có thể thêm một phần để hiển thị nội dung được hiển thị hay không, trong chế độ xem danh sách/hiển thị cho mô hình ...?

Chỉnh sửa: Mã thêm

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 

này xuất hiện cột trong rails_admin

Mã sau | Ưu tiên | Tên | Url | Điện thoại | Logo | Nội dung

điều tôi muốn là Mã | Ưu tiên | Xem trước

trong đó trong cột Preview tôi muốn thể hiện một html render nội dung như:

blah.html (chỉ dành riêng cho ví dụ html ví dụ, ở đây tôi muốn làm trong một cách thức mà nó được hiển thị trong một của trang, vì vậy nó là đoan trang để xem quản trị quá)

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

Xin cụ thể hơn. Hiển thị một số mã. –

+0

tôi đã thêm mã và yêu cầu chi tiết được chỉ định .. –

Trả lời

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 

Tóm tắt:

hiện/li st không sử dụng partials cho đầu ra. Điểm ghi đè cuối cùng là pretty_value.

+0

Điều gì xảy ra nếu "xem trước" nên bao gồm một số dữ liệu của một số mô hình thuộc về? Giả sử Payout.Account.Currency.code? Tôi đã sử dụng "% {# {payout.account.currency.code}}" thay vì "# {util.name} # {util.phone} # {util.logo}" và nó hoạt động tốt để hiển thị, nhưng tôi có thể ' t nhận được phân loại trên 'mã' làm việc. Làm thế nào để làm cho children_fields hoạt động trên các trường mô hình liên kết? – Zelid

+1

Điều này không hiệu quả đối với tôi, hãy xem câu trả lời của tôi bên dưới – Evan

+0

Điều này sẽ hiệu quả, nhưng bạn cần phải thêm một phương thức trong mô hình Tiện ích, xem trước, trả về bất kỳ giá trị nào bạn muốn. – SKR

7

Rails Quản trị viên gọi các loại trường "ảo" này. Cách đơn giản nhất là để thực hiện một phương pháp trên mô hình của bạn, và sau đó đề cập đến nó nó trong danh sách của bạn/show:

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

Mặc dù điều này có hiệu quả, tốt hơn là tránh đặt logic chế độ xem này vào mô hình. – hcarreras

-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

Từ phương thức xem trước, trả về bất kỳ giá trị không null nào. – SKR

-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 
Các vấn đề liên quan