Storage settings <% value = @encrypted_config.value || { 'service' => 'disk' } %> <% configs = value['configs'] || {} %> <%= form_for @encrypted_config, url: settings_storage_index_path, method: :post, html: { autocomplete: 'off' } do |f| %> <% options = [['Disk', 'disk'], ['AWS S3', 'aws_s3'], ['Google Cloud', 'google']] %> <% [['Disk', 'disk'], ['AWS S3', 'aws_s3'], ['Google Cloud', 'google']].each do |(label, val)| %> <%= f.radio_button :selected, val, checked: value['service'] == val, data: { action: 'change:toggle-visible#trigger' } %> <%= f.label :selected, label, value: val %> <% end %> <%= f.fields_for :value do |ff| %> <%= ff.hidden_field :service, value: 'disk' %> <% end %>
Disk storage - no configs needed but make sure you have a persistant disk (heroku doesnt not have one)
<%= f.fields_for :value do |ff| %> <%= ff.hidden_field :service, value: 'aws_s3' %> <%= ff.fields_for :configs, configs do |fff| %>
<%= fff.label :access_key_id, 'Access key ID' %> <%= fff.text_field :access_key_id, value: configs['access_key_id'], required: true %>
<%= fff.label :secret_access_key %> <%= fff.password_field :secret_access_key, value: configs['secret_access_key'], required: true %>
<%= fff.label :region %> <%= fff.text_field :region, value: configs['region'], required: true %>
<%= fff.label :bucket %> <%= fff.text_field :bucket, value: value['service'] == 'aws_s3' ? configs['bucket'] : '', required: true %>
<%= fff.label :endpoint %> <%= fff.text_field :endpoint, value: configs['endpoint'], type: :url %>
<% end %> <% end %>
<%= f.fields_for :value do |ff| %> <%= ff.hidden_field :service, value: 'google' %> <%= ff.fields_for :configs, configs do |fff| %>
<%= fff.label :project, 'Project' %> <%= fff.text_field :project, value: configs['project'], required: true %>
<%= fff.label :bucket %> <%= fff.text_field :bucket, value: value['service'] == 'google' ? configs['bucket'] : '', required: true %>
<%= fff.label :credentials, 'Credentials (JSON key content)' %> <%= fff.text_area :credentials, value: configs['credentials'], required: true %>
<% end %> <% end %>
<%= f.button button_title %> <% end %>