2017-06-28 19 views
0

私はRails 5とDeviseを使用しています。カスタムレイアウトを作成するには、Devise登録を作成し、Rails 5で編集しないでください。

私はすべてのフォームで使用されるデフォルトのアプリケーションレイアウト 'admin_lte'を持っています。今私は、サインアップビューのカスタムレイアウトを使用したいと思います。

class Users::RegistrationsController < Devise::RegistrationsController 

    layout "blank_form", only: [:create] 

    # POST /resource 
    def create 
    super 
    end 

    # GET /resource/edit 
    def edit 
    super 
    end 

しかし、いくつかの理由で

が、これはeditアクションのためにもblank_formレイアウトを適用していないだけでアクションを作成します。私のRegistrationsControllerでは、私は次のようでした。なぜこのようなことが起きたのだろう...私の考えは?

+0

レイアウト "blank_form"、のみ:[:create]、私はレイアウトがちょうどあなたが言いましたようにアクションを作成していますね。 –

+0

はい、そうするべきです。しかし何らかの理由で、私の編集操作にもblank_formが使用されます。 – almo

+0

私はこの部分に答えがあると感じていますが、何らかの理由で私の編集操作にもblank_formを使用しています。もっと明瞭にしたり、言い換えてください。 –

答えて

0

layout "blank_form", :only => [:create]ですか?

また、レイアウトを偽に設定することもできます。layout false, only: [:create]/path/to/signupビューでは、代替CSSコードを貼り付けるだけです。

0

レイアウトが指定されている場合、すべてのレンダリングされたアクションは、レイアウトの結果がレンダリングされます。このレイアウト自体は、アクションの実行中に割り当てられたインスタンス変数に依存し、通常のテンプレートと同様にアクセスできます。

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

あなただけのレイアウトオプションでrenderメソッドを呼び出す必要がある方法のレイアウトをレンダリングしたい場合:あなたのケースでは

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

私はcreate方法は、レンダリング見つけるとお勧めしますあなたのカスタムレイアウトで同じものをレンダリングする

関連する問題