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; }