rails_audit 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE +1 -1
- data/README.md +4 -1
- data/app/controllers/{admin → audit/admin}/audits_controller.rb +1 -1
- data/app/controllers/audit/admin/base_controller.rb +5 -0
- data/app/controllers/audit/admin/check_settings_controller.rb +52 -0
- data/app/controllers/audit/admin/checks_controller.rb +65 -0
- data/app/models/rails_audit/check.rb +15 -0
- data/app/models/rails_audit/check_setting.rb +4 -0
- data/app/models/rails_audit/concerns/auditable.rb +0 -1
- data/app/views/{admin → audit/admin}/audits/_index.html.erb +0 -0
- data/app/views/{admin → audit/admin}/audits/_table.html.erb +0 -0
- data/app/views/{admin → audit/admin}/audits/index.html.erb +0 -0
- data/app/views/{admin → audit/admin}/audits/index.js.erb +0 -0
- data/app/views/audit/admin/check_settings/_form.html.erb +4 -0
- data/app/views/audit/admin/check_settings/_search_form.html.erb +7 -0
- data/app/views/audit/admin/check_settings/edit.html.erb +9 -0
- data/app/views/audit/admin/check_settings/index.html.erb +41 -0
- data/app/views/audit/admin/check_settings/new.html.erb +9 -0
- data/app/views/audit/admin/check_settings/show.html.erb +10 -0
- data/app/views/audit/admin/checks/_form.html.erb +8 -0
- data/app/views/audit/admin/checks/_new.html.erb +17 -0
- data/app/views/audit/admin/checks/_search_form.html.erb +7 -0
- data/app/views/audit/admin/checks/create.js.erb +2 -0
- data/app/views/audit/admin/checks/edit.html.erb +9 -0
- data/app/views/audit/admin/checks/index.html.erb +49 -0
- data/app/views/audit/admin/checks/new.html.erb +9 -0
- data/app/views/audit/admin/checks/new.js.erb +4 -0
- data/app/views/audit/admin/checks/show.html.erb +26 -0
- data/config/routes.rb +6 -1
- data/lib/rails_audit/config.rb +14 -0
- data/lib/rails_audit/version.rb +1 -1
- data/lib/rails_audit.rb +1 -0
- data/test/dummy/README.md +4 -0
- data/test/dummy/app/assets/config/manifest.js +7 -0
- data/test/dummy/app/assets/images/default_avatar.jpg +0 -0
- data/test/dummy/app/assets/javascripts/application.js +1 -1
- data/test/dummy/app/assets/javascripts/footer.js +0 -0
- data/test/dummy/app/assets/stylesheets/application.css +1 -1
- data/test/dummy/app/controllers/home_controller.rb +0 -5
- data/test/dummy/app/controllers/my/base_controller.rb +2 -0
- data/test/dummy/app/models/user.rb +2 -1
- data/test/dummy/app/views/home/index.html.erb +0 -0
- data/test/dummy/app/views/layouts/_footer.html.erb +10 -0
- data/test/dummy/app/views/layouts/_navbar.html.erb +1 -12
- data/test/dummy/app/views/layouts/_right_menu.html.erb +0 -20
- data/test/dummy/config/application.rb +1 -0
- data/test/dummy/config/database.yml +12 -0
- data/test/dummy/config/environments/test.rb +2 -0
- data/test/dummy/config/initializers/assets.rb +4 -0
- data/test/dummy/config/initializers/new_framework_defaults.rb +1 -1
- data/test/dummy/config/routes.rb +1 -2
- data/test/dummy/config/storage.yml +3 -0
- data/test/dummy/db/migrate/20180916100159_create_users.rb +10 -0
- data/test/dummy/package.json +2 -1
- data/test/dummy/vendor/nondigest_assets/fonts/themes/default/assets/fonts/brand-icons.eot +0 -0
- data/test/dummy/vendor/nondigest_assets/fonts/themes/default/assets/fonts/brand-icons.svg +1008 -0
- data/test/dummy/vendor/nondigest_assets/fonts/themes/default/assets/fonts/brand-icons.ttf +0 -0
- data/test/dummy/vendor/nondigest_assets/fonts/themes/default/assets/fonts/brand-icons.woff +0 -0
- data/test/dummy/vendor/nondigest_assets/fonts/themes/default/assets/fonts/brand-icons.woff2 +0 -0
- data/test/dummy/vendor/nondigest_assets/fonts/themes/default/assets/fonts/icons.eot +0 -0
- data/test/dummy/vendor/nondigest_assets/fonts/themes/default/assets/fonts/icons.otf +0 -0
- data/test/dummy/vendor/nondigest_assets/fonts/themes/default/assets/fonts/icons.svg +1518 -0
- data/test/dummy/vendor/nondigest_assets/fonts/themes/default/assets/fonts/icons.ttf +0 -0
- data/test/dummy/vendor/nondigest_assets/fonts/themes/default/assets/fonts/icons.woff +0 -0
- data/test/dummy/vendor/nondigest_assets/fonts/themes/default/assets/fonts/icons.woff2 +0 -0
- data/test/dummy/vendor/nondigest_assets/fonts/themes/default/assets/fonts/outline-icons.eot +0 -0
- data/test/dummy/vendor/nondigest_assets/fonts/themes/default/assets/fonts/outline-icons.svg +366 -0
- data/test/dummy/vendor/nondigest_assets/fonts/themes/default/assets/fonts/outline-icons.ttf +0 -0
- data/test/dummy/vendor/nondigest_assets/fonts/themes/default/assets/fonts/outline-icons.woff +0 -0
- data/test/dummy/vendor/nondigest_assets/fonts/themes/default/assets/fonts/outline-icons.woff2 +0 -0
- data/test/dummy/vendor/nondigest_assets/fonts/themes/default/assets/images/flags.png +0 -0
- data/test/dummy/yarn.lock +6 -2
- metadata +78 -12
- data/app/models/rails_audit/history.rb +0 -36
- data/app/models/rails_audit/major_record.rb +0 -14
- data/app/models/rails_audit/minor_record.rb +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '068b08f554d9fb87f10c4b43487c8139ccfb3e780668136dd6df7897b824dbe7'
|
4
|
+
data.tar.gz: b1bd958ee3d5929a605496bf4f28726c5fc0fb6a079438333ea3b6b5d41db9c6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: afb5498ba9e1994474cec91c2f78b15ae0638447f3f89c3fdc5ecb77e506ebd73a538a35c3d7a9946ae4ff897932b99f3360bc25dbc3352606e8ba9fd4bbeda3
|
7
|
+
data.tar.gz: 82dda2b72de59212d947929a84f86ed2a561db317c27e969614b959c5eb9fb6e1294dea005bc7bcd7da6b765c7785964b4fd88def5515bc98579fd059bd69794
|
data/LICENSE
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
GNU LESSER GENERAL PUBLIC LICENSE
|
2
2
|
Version 3, 29 June 2007
|
3
3
|
|
4
|
-
Copyright (C)
|
4
|
+
Copyright (C) 2018 Mingyuan Qin.
|
5
5
|
Everyone is permitted to copy and distribute verbatim copies
|
6
6
|
of this license document, but changing it is not allowed.
|
7
7
|
|
data/README.md
CHANGED
@@ -0,0 +1,52 @@
|
|
1
|
+
class RailsAuditAdmin::CheckSettingsController < RailsAuditAdmin::BaseController
|
2
|
+
before_action :set_check_setting, only: [:show, :edit, :update, :destroy]
|
3
|
+
|
4
|
+
def index
|
5
|
+
@check_settings = CheckSetting.page(params[:page])
|
6
|
+
end
|
7
|
+
|
8
|
+
def new
|
9
|
+
@check_setting = CheckSetting.new
|
10
|
+
end
|
11
|
+
|
12
|
+
def create
|
13
|
+
@check_setting = CheckSetting.new(check_setting_params)
|
14
|
+
|
15
|
+
if @check_setting.save
|
16
|
+
redirect_to hr_check_settings_url, notice: 'Check setting was successfully created.'
|
17
|
+
else
|
18
|
+
render :new
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def show
|
23
|
+
end
|
24
|
+
|
25
|
+
def edit
|
26
|
+
end
|
27
|
+
|
28
|
+
def update
|
29
|
+
if @check_setting.update(check_setting_params)
|
30
|
+
redirect_to hr_check_settings_url, notice: 'Check setting was successfully updated.'
|
31
|
+
else
|
32
|
+
render :edit
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def destroy
|
37
|
+
@check_setting.destroy
|
38
|
+
redirect_to hr_check_settings_url, notice: 'Check setting was successfully destroyed.'
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
def set_check_setting
|
43
|
+
@check_setting = CheckSetting.find(params[:id])
|
44
|
+
end
|
45
|
+
|
46
|
+
def check_setting_params
|
47
|
+
params.fetch(:check_setting, {}).permit(
|
48
|
+
:code
|
49
|
+
)
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
class RailsAuditAdmin::ChecksController < RailsAuditAdmin::BaseController
|
2
|
+
before_action :set_check, only: [:show, :edit, :update, :destroy]
|
3
|
+
|
4
|
+
def index
|
5
|
+
@checks = Check.page(params[:page])
|
6
|
+
end
|
7
|
+
|
8
|
+
def new
|
9
|
+
@check = Check.new(state: params[:state])
|
10
|
+
end
|
11
|
+
|
12
|
+
def create
|
13
|
+
@check = Check.new(check_params)
|
14
|
+
|
15
|
+
respond_to do |format|
|
16
|
+
if @check.save
|
17
|
+
format.js
|
18
|
+
format.html { redirect_to checks_url, notice: 'Check was successfully created.' }
|
19
|
+
else
|
20
|
+
format.js
|
21
|
+
format.html { render :new }
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def show
|
27
|
+
end
|
28
|
+
|
29
|
+
def edit
|
30
|
+
end
|
31
|
+
|
32
|
+
def update
|
33
|
+
if @check.update(check_params)
|
34
|
+
redirect_to checks_url, notice: 'Check was successfully updated.'
|
35
|
+
else
|
36
|
+
render :edit
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def destroy
|
41
|
+
@check.destroy
|
42
|
+
redirect_to checks_url, notice: 'Check was successfully destroyed.'
|
43
|
+
end
|
44
|
+
|
45
|
+
private
|
46
|
+
def set_checking
|
47
|
+
@checking = params[:checking_type].safe_constantize&.find_by(id: params[:checking_id])
|
48
|
+
end
|
49
|
+
|
50
|
+
def set_check
|
51
|
+
@check = Check.find(params[:id])
|
52
|
+
end
|
53
|
+
|
54
|
+
def check_params
|
55
|
+
q = params.fetch(:check, {}).permit(
|
56
|
+
:comment,
|
57
|
+
:verified,
|
58
|
+
:state
|
59
|
+
)
|
60
|
+
q.merge! checking_type: params[:checking_type], checking_id: params[:checking_id]
|
61
|
+
q.merge! member_id: current_member.id
|
62
|
+
q
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class Check < ApplicationRecord
|
2
|
+
attribute :verified, :boolean, default: true
|
3
|
+
|
4
|
+
belongs_to :checking, polymorphic: true
|
5
|
+
belongs_to :member
|
6
|
+
|
7
|
+
after_create_commit :checking_trigger
|
8
|
+
|
9
|
+
def checking_trigger
|
10
|
+
if self.verified
|
11
|
+
checking.do_trigger state: self.state
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,41 @@
|
|
1
|
+
<div class="ui top attached borderless menu">
|
2
|
+
<div class="header item">Hr Check Settings</div>
|
3
|
+
<div class="right menu">
|
4
|
+
<div class="item">
|
5
|
+
<%= link_to 'New Hr Check Setting', new_admin_check_setting_path, class: 'ui teal button' %>
|
6
|
+
</div>
|
7
|
+
</div>
|
8
|
+
</div>
|
9
|
+
|
10
|
+
<div class="ui attached segment">
|
11
|
+
<%= render 'search_form' %>
|
12
|
+
</div>
|
13
|
+
|
14
|
+
<table class="ui bottom attached table">
|
15
|
+
<thead>
|
16
|
+
<tr>
|
17
|
+
<th><%= CheckSetting.human_attribute_name(:id) %></th>
|
18
|
+
<th>Actions</th>
|
19
|
+
</tr>
|
20
|
+
</thead>
|
21
|
+
<tbody>
|
22
|
+
<% @check_settings.each do |check_setting| %>
|
23
|
+
<tr>
|
24
|
+
<td><%= check_setting.id %></td>
|
25
|
+
<td class="ui labels">
|
26
|
+
<%= link_to admin_check_setting_path(check_setting), data: { tooltip: t('.show') }, class: 'ui blue mini icon button' do %>
|
27
|
+
<i class="location arrow icon"></i>
|
28
|
+
<% end %>
|
29
|
+
<%= link_to edit_admin_check_setting_path(check_setting), data: { tooltip: t('.edit') }, class: 'ui pink mini icon button' do %>
|
30
|
+
<i class="pencil alternate icon"></i>
|
31
|
+
<% end %>
|
32
|
+
<%= link_to admin_check_setting_path(check_setting), method: :delete, data: { tooltip: t('.destroy'), confirm: 'Are you sure?' }, class: 'ui red mini icon button' do %>
|
33
|
+
<i class="times icon"></i>
|
34
|
+
<% end %>
|
35
|
+
</td>
|
36
|
+
</tr>
|
37
|
+
<% end %>
|
38
|
+
</tbody>
|
39
|
+
</table>
|
40
|
+
|
41
|
+
<%= paginate @check_settings %>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<div class="ui segment breadcrumb">
|
2
|
+
<%= link_to 'Back', admin_check_settings_path, class: 'section' %>
|
3
|
+
<div class="divider"> / </div>
|
4
|
+
<div class="active section">Show</div>
|
5
|
+
</div>
|
6
|
+
|
7
|
+
<table class="ui very basic large table">
|
8
|
+
<tbody>
|
9
|
+
</tbody>
|
10
|
+
</table>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<%= form_with model: @check, local: true do |f| %>
|
2
|
+
<%= render 'shared/error_messages', target: @check %>
|
3
|
+
<%= f.number_field :member_id %>
|
4
|
+
<%= f.text_field :comment %>
|
5
|
+
<%= f.check_box :verified %>
|
6
|
+
<%= f.number_field :position %>
|
7
|
+
<%= f.submit %>
|
8
|
+
<% end %>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<div class="ui modal" id="modal">
|
2
|
+
<i class="close icon"></i>
|
3
|
+
<div class="ui header blue">
|
4
|
+
Add Note
|
5
|
+
</div>
|
6
|
+
|
7
|
+
<div class="content">
|
8
|
+
<%= form_with model: @check, url: checks_path do |f| %>
|
9
|
+
<%= render 'shared/error_messages', target: @check %>
|
10
|
+
<%= f.hidden_field :state %>
|
11
|
+
<%= f.text_area :comment %>
|
12
|
+
<%= f.check_box :verified %>
|
13
|
+
<%= f.submit %>
|
14
|
+
<% end %>
|
15
|
+
</div>
|
16
|
+
|
17
|
+
</div>
|
@@ -0,0 +1,49 @@
|
|
1
|
+
<div class="ui top attached borderless menu">
|
2
|
+
<div class="header item">Checks</div>
|
3
|
+
<div class="right menu">
|
4
|
+
<div class="item">
|
5
|
+
<%= link_to 'New Check', new_check_path, class: 'ui teal button' %>
|
6
|
+
</div>
|
7
|
+
</div>
|
8
|
+
</div>
|
9
|
+
|
10
|
+
<div class="ui attached segment">
|
11
|
+
<%= render 'search_form' %>
|
12
|
+
</div>
|
13
|
+
|
14
|
+
<table class="ui bottom attached table">
|
15
|
+
<thead>
|
16
|
+
<tr>
|
17
|
+
<th><%= Check.human_attribute_name(:id) %></th>
|
18
|
+
<th><%= Check.human_attribute_name(:member_id) %></th>
|
19
|
+
<th><%= Check.human_attribute_name(:comment) %></th>
|
20
|
+
<th><%= Check.human_attribute_name(:verified) %></th>
|
21
|
+
<th><%= Check.human_attribute_name(:position) %></th>
|
22
|
+
<th>Actions</th>
|
23
|
+
</tr>
|
24
|
+
</thead>
|
25
|
+
<tbody>
|
26
|
+
<% @checks.each do |check| %>
|
27
|
+
<tr>
|
28
|
+
<td><%= check.id %></td>
|
29
|
+
<td><%= check.member_id %></td>
|
30
|
+
<td><%= check.comment %></td>
|
31
|
+
<td><%= check.verified %></td>
|
32
|
+
<td><%= check.position %></td>
|
33
|
+
<td class="ui labels">
|
34
|
+
<%= link_to check_path(check), class: 'ui blue mini icon button' do %>
|
35
|
+
<i class="location arrow icon"></i>
|
36
|
+
<% end %>
|
37
|
+
<%= link_to edit_check_path(check), class: 'ui pink mini icon button' do %>
|
38
|
+
<i class="pencil alternate icon"></i>
|
39
|
+
<% end %>
|
40
|
+
<%= link_to check_path(check), method: :delete, data: { confirm: 'Are you sure?' }, class: 'ui red mini icon button' do %>
|
41
|
+
<i class="times icon"></i>
|
42
|
+
<% end %>
|
43
|
+
</td>
|
44
|
+
</tr>
|
45
|
+
<% end %>
|
46
|
+
</tbody>
|
47
|
+
</table>
|
48
|
+
|
49
|
+
<%= paginate @checks %>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<div class="ui segment breadcrumb">
|
2
|
+
<%= link_to 'Back', checks_path, class: 'section' %>
|
3
|
+
<div class="divider"> / </div>
|
4
|
+
<div class="active section">Show</div>
|
5
|
+
</div>
|
6
|
+
|
7
|
+
<table class="ui very basic large table">
|
8
|
+
<tbody>
|
9
|
+
<tr>
|
10
|
+
<td class="right aligned"><%= Check.human_attribute_name(:member_id) %></td>
|
11
|
+
<td><%= @check.member_id %></td>
|
12
|
+
</tr>
|
13
|
+
<tr>
|
14
|
+
<td class="right aligned"><%= Check.human_attribute_name(:comment) %></td>
|
15
|
+
<td><%= @check.comment %></td>
|
16
|
+
</tr>
|
17
|
+
<tr>
|
18
|
+
<td class="right aligned"><%= Check.human_attribute_name(:approved) %></td>
|
19
|
+
<td><%= @check.approved %></td>
|
20
|
+
</tr>
|
21
|
+
<tr>
|
22
|
+
<td class="right aligned"><%= Check.human_attribute_name(:position) %></td>
|
23
|
+
<td><%= @check.position %></td>
|
24
|
+
</tr>
|
25
|
+
</tbody>
|
26
|
+
</table>
|
data/config/routes.rb
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
Rails.application.routes.draw do
|
2
2
|
|
3
|
-
scope
|
3
|
+
scope ':auditable_type/:auditable_id', module: 'audit/admin' do
|
4
4
|
resources :audits, only: ['index']
|
5
5
|
end
|
6
6
|
|
7
|
+
scope ':checking_type/:checking_id', module: 'audit/admin' do
|
8
|
+
resources :checks
|
9
|
+
resources :check_settings
|
10
|
+
end
|
11
|
+
|
7
12
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'active_support/configurable'
|
2
|
+
|
3
|
+
module RailsAudit #:nodoc:
|
4
|
+
include ActiveSupport::Configurable
|
5
|
+
|
6
|
+
configure do |config|
|
7
|
+
config.app_class = 'ApplicationController'
|
8
|
+
config.my_class = 'MyController'
|
9
|
+
config.admin_class = 'AdminController'
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
13
|
+
|
14
|
+
|
data/lib/rails_audit/version.rb
CHANGED
data/lib/rails_audit.rb
CHANGED
data/test/dummy/README.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
1
|
//= link_tree ../images
|
2
|
+
|
3
|
+
//= link application.js
|
4
|
+
//= link footer.js
|
2
5
|
//= link_directory ../javascripts .js
|
6
|
+
//= link_tree ../javascripts/controllers .js
|
7
|
+
|
8
|
+
//= link application.css
|
3
9
|
//= link_directory ../stylesheets .css
|
10
|
+
//= link_tree ../stylesheets/controllers .css
|
Binary file
|
@@ -1,2 +1,2 @@
|
|
1
|
-
//= require
|
1
|
+
//= require yougexiangfa_ui/dist/javascripts/semantic
|
2
2
|
//= require_tree .
|
File without changes
|
File without changes
|
@@ -1,17 +1,6 @@
|
|
1
1
|
<header class="ui inverted site borderless menu">
|
2
2
|
<div class="ui container">
|
3
|
-
|
4
|
-
<% if current_user %>
|
5
|
-
<%= link_to root_path, class: 'item header' do %>
|
6
|
-
<span>MDPI</span>
|
7
|
-
<% end %>
|
8
|
-
<%= link_to 'Team', members_path, class: active_helper(controller: '/members') %>
|
9
|
-
<% else %>
|
10
|
-
<%= link_to 'MDPI', root_path, class: 'item header' %>
|
11
|
-
<% end %>
|
12
|
-
|
13
|
-
<%= render 'layouts/right_menu' %>
|
14
|
-
|
3
|
+
<%= link_to 'Dummy', root_path, class: 'item header' %>
|
15
4
|
</div>
|
16
5
|
</header>
|
17
6
|
|
@@ -1,23 +1,3 @@
|
|
1
1
|
<div class="right menu">
|
2
2
|
<%= render partial: 'shared/locales' %>
|
3
|
-
<%= render partial: 'the_notify/link' %>
|
4
|
-
<% if current_user %>
|
5
|
-
<div class="ui simple dropdown item" id="navbar_dropdown">
|
6
|
-
<% if current_user.avatar.attached? %>
|
7
|
-
<%= image_tag current_user.avatar.variant(resize: '28x28'), class: 'ui avatar image' %>
|
8
|
-
<% else %>
|
9
|
-
<%= image_tag 'default_avatar.jpg', size: '28x28', class: 'ui avatar image' %>
|
10
|
-
<% end %>
|
11
|
-
<%= current_user.name %>
|
12
|
-
<i class="dropdown icon"></i>
|
13
|
-
<div class="menu">
|
14
|
-
<%= link_to 'Profile', '/my/profile', class: active_helper(controllers: ['profile']) %>
|
15
|
-
<%= link_to 'Logout', logout_path, class: 'item' %>
|
16
|
-
</div>
|
17
|
-
</div>
|
18
|
-
<% else %>
|
19
|
-
<%= link_to login_path, class: 'item' do %>
|
20
|
-
<i class="icon-user"></i> Login/Join
|
21
|
-
<% end %>
|
22
|
-
<% end %>
|
23
3
|
</div>
|
@@ -37,6 +37,8 @@ Rails.application.configure do
|
|
37
37
|
# Print deprecation notices to the stderr.
|
38
38
|
config.active_support.deprecation = :stderr
|
39
39
|
|
40
|
+
config.active_storage.service = :local_test
|
41
|
+
|
40
42
|
# Raises error for missing translations
|
41
43
|
# config.action_view.raise_on_missing_translations = true
|
42
44
|
end
|