[英]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所做的工作
將以下內容添加到模型中(假設您正在模型中定義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
根據需要創建將在“ apps / views / rails_admin / main / _load_js.html.erb”或haml中呈現的文件。
將您的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.