2
私は仕事があります。 別のフィールドを表示すると、私のオブジェクトのパラメータに依存します。ActiveAdminに表示する条件を追加するには
たとえば、現在のオブジェクトのmessage_typeが 'custom'の場合、 私は1つの入力を表示します。ここで
が今どのような作品コードです:
form do |f|
if f.object.new_record? || f.object.message_type == 'custom'
f.inputs do
f.input :custom_topic
f.input :custom_content, as: :text
end
f.actions
end
end
しかし、ショーのために、私はそれを確認する方法がわかりません。私は今持っている:
show do
attributes_table do
if :message_type == 'custom'
row :message_type
row(:topic) { |object| object.notification_data['topic'] }
row(:content) { |object| object.notification_data['content'] }
else
row :message_type
row :notification_data
end
end
end
私は、デバッガを実行すると、それは
MESSAGE_TYPE = {記号}
私を示しており、私は同意する)
しかし、どのように現在のオブジェクトのmessage_typeの値をチェックしますか?怒鳴る
私のすべてのコードは:メソッドは通常、あなたが管理しているモデルにちなんで名付けられたとしてshow
ブロックで
ActiveAdmin.register Notification do
belongs_to :case, finder: :find_by_slug
permit_params :message_type, :custom_topic, :custom_content, :notification_data
form do |f|
if f.object.new_record? || f.object.message_type == 'custom'
f.inputs do
f.input :custom_topic
f.input :custom_content, as: :text
end
f.actions
end
end
show do
attributes_table do
if :message_type == 'custom'
row :message_type
row(:topic) { |object| object.notification_data['topic'] }
row(:content) { |object| object.notification_data['content'] }
else
row :message_type
row :notification_data
end
end
end
config.filters = false
end
ありがとうございます。あなたは私の命を救いました) –