I am trying to store images in my post section of my app using active_storage. However, when I am trying to run rails active_storage:install via the terminal, I am getting a message that rails aborts every time.

I have already tried to include require 'active_storage/engine' within my application.rb file but the problem keeps persisting.

Gemfile

source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby '2.5.1'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 5.2.3'
# Use Puma as the app server
gem 'puma', '~> 3.11'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
    # See https://github.com/rails/execjs#readme for more supported runtimes
    # gem 'mini_racer', platforms: :ruby

    # Use CoffeeScript for .coffee assets and views
    gem 'coffee-rails', '~> 4.2'
    # Turbolinks makes navigating your web application faster. Read 
    more: 
    https://github.com/turbolinks/turbolinks
    gem 'turbolinks', '~> 5'
    # Build JSON APIs with ease. Read more: 
    https://github.com/rails/jbuilder
    gem 'jbuilder', '~> 2.5'
    # Use Redis adapter to run Action Cable in production
    # gem 'redis', '~> 4.0'
    # Use ActiveModel has_secure_password
    # gem 'bcrypt', '~> 3.1.7'

    # Use ActiveStorage variant
    # gem 'mini_magick', '~> 4.8'

    # Use Capistrano for deployment
    # gem 'capistrano-rails', group: :development

    # Reduces boot times through caching; required in config/boot.rb
    gem 'bootsnap', '>= 1.1.0', require: false

    gem 'devise'
    gem 'pg'
    gem 'bootstrap', '~> 4.3.1'
    gem 'jquery-rails'
    gem 'font-awesome-rails'


    group :development, :test do
      # Call 'byebug' anywhere in the code to stop execution and get a 
    debugger console
       gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
     end

    group :development do
     # Access an interactive console on exception pages or by calling ' 
    console' anywhere in the code.
    gem 'web-console', '>= 3.3.0'
    gem 'listen', '>= 3.0.5', '< 3.2'
     # Spring speeds up development by keeping your application running 
       in 
    the background. Read more: https://github.com/rails/spring
      gem 'spring'
      gem 'spring-watcher-listen', '~> 2.0.0'
    end

    group :test do
      # Adds support for Capybara system testing and selenium driver
      gem 'capybara', '>= 2.15'
      gem 'selenium-webdriver'
      # Easy installation and use of chromedriver to run system tests 
        with Chrome
      gem 'chromedriver-helper'
    end

    # Windows does not include zoneinfo files, so bundle the tzinfo-data 
    gem
    gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

application.rb

require_relative 'boot'

require 'rails/all'
require 'active_storage/engine'

# Require the gems listed in Gemfile, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(*Rails.groups)

module Instagram
  class Application < Rails::Application
    # Initialize configuration defaults for originally generated 
Rails version.
config.load_defaults 5.2

# Settings in config/environments/* take precedence over those 
specified here.
# Application configuration can go into files in config/initializers
# -- all .rb files in that directory are automatically loaded after 
loading
    # the framework and any gems in your application.
  end
end

User.rb

class User < ApplicationRecord
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable, :trackable and 
    :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :validatable

  has_many :posts, dependable: :destroy

end

Post.rb

class Post < ApplicationRecord
  belongs_to :user
end

and finally, my terminal output.

 rails active_storage:install --trace
    ** Invoke active_storage:install (first_time)
    ** Invoke environment (first_time)
    ** Execute environment
    rails aborted!
    ArgumentError: Unknown key: :dependable. Valid keys are: 
    :class_name, :anonymous_class, :foreign_key, :validate, :autosave, 
    :table_name, :before_add, :after_add, :before_remove, :after_remove, 
    :extend, :primary_key, :dependent, :as, :through, :source, 
    :source_type, :inverse_of, :counter_cache, :join_table, 
    :foreign_type, :index_errors

I am expecting the output to create a db migration table as follows.

db/migrate/20180924134051_create_active_storage_tables.active_storage.rb

1 Answers

0
Kamal Pandey On Best Solutions

change

has_many :posts, dependable: :destroy

to

has_many :posts, dependent: :destroy