2017-07-08 20 views
0

私はRoRにアプリケーションを持っており、ログインモーダルを行う必要があります。Railsアプリケーションのモーダル(Devise)

私は宝石を使用していますdeviseです。

ビューの工夫フォルダでsessions_controller.rb

class Users::SessionsController < Devise::SessionsController 
    respond_to :js 
    end 

、私はセッションが2個のファイルとフォルダを持っている:_new.html.erbnew.js.erb

_new.html.erb

<div class="modal-dialog modal-sm"> 
    <div class="modal-content"> 
    <div class="modal-header"> 
     <button class="close" data-dismiss="modal">x</button> 
     <h2 class="dark">Log in</h2> 
    </div> 
    <div class="modal-body"> 
     <%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %> 
     <div class="field"> 
     <%= f.label :email %><br /> 
     <%= f.email_field :email, autofocus: true %> 
     </div> 

     <div class="field"> 
     <%= f.label :password %><br /> 
     <%= f.password_field :password, autocomplete: "off" %> 
     </div> 

     <% if devise_mapping.rememberable? -%> 
     <div class="field"> 
     <%= f.check_box :remember_me %> 
     <%= f.label :remember_me %> 
     </div> 
     <% end -%> 

     <div class="actions"> 
     <%= f.submit "Log in", class: "btn btn-md btn-black-line" %> 
     </div> 
     <% end %> 
     <%= render "devise/shared/links" %> 
    </div> 
    </div> 
</div> 

new.js.erb私は、モーダルを使用するには、このコードを使用し私のapplication.html.erb

$('#modaldevise').html('<%= j render('new') %>'); 
$('#modaldevise').modal(); 

<%= link_to 'Login', new_user_session_path, 'data-toggle' => "modal" , 'data-target' => "#modaldevise" %> 

<div id="modaldevise" class="modal fade"></div> 

最後に、私は、ログインリンクを持っているサイドメニューを持っています

ログインリンクを押すと、背景が暗くなり、モーダルが開きますが、部分_new.html.erbの情報は表示されません。

ここで何が間違っていますか?

答えて

1

あなたはnew.js.erbを使用して回避し、このような何か行うことができます。

application.html.erb

<div id="modaldevise" class="modal fade"> 
    <%= render 'your_path/new' %> 
</div> 

サイドメニュー

<%= link_to 'Sign in', '#', "data-toggle" => "modal", "data-target"=>"#modaldevise" %> 
+0

それが動作します。ありがとう! = P –

関連する問題