簡體   English   中英

在rails_admin中基於選擇值顯示/隱藏字段

[英]Show/Hide Field Based on Value of Selection in rails_admin

我正在使用rails_admin gem提供一些用於在應用程序中管理數據的UI。 我有一個模型的編輯表單,並且我希望能夠在編輯屏幕中顯示或隱藏表單字段,以基於對表單中“類型”的選擇來收集其他信息。 我找不到使用rails_admin執行此操作的示例,這可能嗎?

config.model 'MediaObject' do
    edit do   
     field :title
     field :type, :belongs_to_association
     field :asset, :carrierwave
    end
end

我不確定執行此方法的方法,該方法涉及在選擇:type時立即顯示相關字段。 如果您不介意先保存對象 ,則可以執行以下操作:

field :field_name do
  visible do
    bindings[:object].type == # Put your type here
  end
end

這使得:field_name您已保存對象之后類型相關時可見。 此外,您可以做兩件事以使此解決方法更加簡潔。

首先,在創建對象之后將:type只讀。 將其放在您的編輯塊之后:

update do
  configure :type do
    readonly true
  end
end

其次,在創建對象之前,不顯示特定於:type選擇的所有字段。 將其放在您的編輯塊之后:

create do
  configure :field_name do
    visible false
  end

  # you could also do this for multiple fields
  include_fields :field_name1, :field_name2, :field_name3 do
    visible false
  end
end 

盡管這不是理想的選擇,但我已經做了類似的事情,我也不介意。 我希望這有幫助。

這是您對rails_admin所做的工作

  1. 將以下內容添加到模型中(假設您正在模型中定義rails_admin):

     edit do field :my_field_1 field :my_field_2 field "load_js", :hidden do def render bindings[:view].render partial: "load_js" end end end 
  2. 根據需要創建將在“ apps / views / rails_admin / main / _load_js.html.erb”或haml中呈現的文件。

  3. 將您的javascript添加到上述文件中:

     <script type="text/javascript"> $(document).ready(function() { //whatever you would like to do to the form here }); </script> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM