docs/rails.md in chr-0.2.8 vs docs/rails.md in chr-0.3.5

- old
+ new

@@ -1,8 +1,8 @@ # Character -## Rails +## Rails Setup An example of admin implementation setup for [Rails](https://github.com/rails/rails) app that uses [Mongoid](https://github.com/mongoid/mongoid) stack. ### Gems @@ -73,21 +73,15 @@ 1. Authentication is not required when running in development or testing environment; 2. Need to setup ```index``` view and ```admin``` layout to render admin app; 3. ```bootstrap_data``` is a placeholder for objects that might be required to be loaded when app starts. -Devise would require a custom ```SessionController``` implementation in ```app/controllers/admin/devise_overrides/session_controller.rb```. ```SessionController``` sets ```admin``` layout to be used for devise views rendering and enables login by email (*looks like workaround*). +Devise would require a custom ```SessionController``` implementation in ```app/controllers/admin/devise_overrides/session_controller.rb```. ```SessionController``` sets ```admin``` layout to be used for devise views rendering. ```ruby class Admin::DeviseOverrides::SessionsController < Devise::SessionsController layout 'admin' - - protected - - def configure_permitted_parameters - devise_parameter_sanitizer.for(:sign_in) << :email - end end ``` Admin app layout ```app/views/layouts/admin.html.erb```: @@ -111,12 +105,18 @@ Admin index view ```app/views/admin/index.html.erb```: ```erb <body class='loading'> - <%= link_to 'Sign Out', destroy_admin_session_path, method: :delete, style: 'display:none;' %> + + <% admin_email = Rails.env.production? ? current_admin.email : 'developer@example.com' %> + + <%= link_to 'Sign Out', destroy_admin_session_path, 'data-admin-email' => admin_email, + method: :delete, + style: 'display:none;', class: 'menu-logout' %> </body> + <%= javascript_include_tag :admin %> ``` New session view for devise ```app/views/admin/devise_overrides/sessions/new.html.erb```: @@ -192,10 +192,10 @@ ```scss .sign-in { margin: 2em; max-width: 18em; h2 { text-transform: uppercase; color: $black; } - input { @include noFocus(); } + input { @include no-outline; } label { color: $black; } .input { margin-bottom: .75em; } .input input[type=checkbox] { margin-right: .5em; }