2017-06-28 4 views
0

Ich kann mit Rails 5 und Devise.Verwenden Sie benutzerdefinierte Layout nur für Devise Registrierung erstellen und nicht bearbeiten in Rails 5

Ich habe ein Standard-Anwendungslayout 'admin_lte', das in allen meinen Formularen verwendet wird. Jetzt möchte ich ein benutzerdefiniertes Layout für die Anmeldeansicht verwenden. In meinem RegistrationsController habe ich folgende:

class Users::RegistrationsController < Devise::RegistrationsController 

    layout "blank_form", only: [:create] 

    # POST /resource 
    def create 
    super 
    end 

    # GET /resource/edit 
    def edit 
    super 
    end 

Aber aus irgendeinem Grunde gilt dies das blank_form Layout auch für die Edit-Aktion und die nicht nur Aktion erstellen. Ich frage mich, warum das passiert ... irgendwelche Ideen?

+0

Layout "blank_form", nur: [: create], ich denke, Layout gilt nur für Erstellen Sie eine Aktion, wie Sie erwähnt haben, denke ich? !!!! –

+0

Ja, das sollte es tun. Aber aus irgendeinem Grund verwendet es auch "blank_form" für meine Bearbeitungsaktion. – almo

+0

Ich glaube, die Antwort ist in diesem Teil "Aber aus irgendeinem Grund verwendet es leere_formular auch für meine Bearbeitungsaktion." Könnten Sie es bitte klarer formulieren oder neu formulieren? –

Antwort

0

funktioniert layout "blank_form", :only => [:create] für Sie?

könnten Sie auch nur versuchen, das Layout zu falschen layout false, only: [:create] Einstellung und in der /path/to/signup Ansicht nur Ihren alternativen CSS-Code einfügen.

0

Wenn ein Layout angegeben ist, werden alle gerenderten Aktionen gerendert, wenn das Layout nachgibt. Dieses Layout kann selbst von Instanzvariablen abhängen, die während der Aktionsperformance zugewiesen wurden, und kann wie jede normale Vorlage darauf zugreifen.

https://apidock.com/rails/ActionController/Layout/ClassMethods/layout

Wenn Sie das Layout rendern wollen nur für ein Verfahren sollten Sie Methode mit Layout-Option machen aufzurufen:

http://guides.rubyonrails.org/layouts_and_rendering.html#options-for-render

In Ihrem Fall empfehle ich das finden, was create Methode machen und Rendern Sie dasselbe mit Ihrem benutzerdefinierten Layout

Verwandte Themen