2016-08-29 3 views
0

私は、自分のユーザーコントローラーの新しいアクションと編集アクションのセットアップモーダルを持っています。表示の一貫性を保つため、ユーザーの表示ページをモーダルにも表示したいと思います。今アプリケーションWide Modal Issueレール5 Bootstrap 3

ユーザーは、私のナビゲーションバーに

<li><%= link_to "View Profile", current_user %></li> 

リンクを経由して彼らのショーのページにアクセスします。

私はこのリンクを設定して、ユーザのコントローラにshowアクションのモーダルを表示したいと考えています。

私はこのようにする方法をGoogleに試みましたが、私は正しい質問をしているとは思っていません。誰かが私をリソースに誘導したり、これを達成するための一般的な概要を教えてもらえれば、それは非常に高く評価されます。

私はこの質問が少しばらばらであることを認識していますが、どのように進むべきかわかりません。

答えて

1

あなただけクリックした時にプロファイルをロードする場合は、レールのJSを使用することができます。

リンクタグにremote: trueを設定します。

<li><%= link_to "View Profile", current_user, remote: true %></li> 

2.我々はレールのJSを経由して、それをレンダリングすることができるようにモーダルを含む部分を作成します。

app/views/users/_show.html.erb

<%= content_tag :div, class: "modal fade", id: dom_id(@user, :modal) do %> 
    <div class="modal-dialog"> 
    <div class="modal-content"> 
     Lorem ipsum... 
    </div> 
    </div> 
<% end %> 

3.モーダルを含む部分を追加し、それがレールのJSを使用してトグル。 remote: trueが設定されている場合、Railsは対応する.js.erbビューを探します。

app/views/users/show.js.erb

$('body').append('<%= j render "users/show" %>'); // Append modal 
$('#<%= dom_id @user, :modal %>').modal('toggle'); // Toggle modal 
+0

私は、表示アクションにフォーマットブロックを追加し、それにformat.jsを追加する必要がありますか? –

+0

あなただけが.htmlと.js @ShawnWilsonの両方をサポートしている場合のみ – codyeatworld

+0

私はこれを追加しました:remote => remoteの代わりにtrue:Bailoutのために本当にありがとう! –

1

多分このような何か:

<!-- Trigger the modal with a button --> 
<button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#myModal">Open Modal</button> 

<!-- Modal --> 
<div id="myModal" class="modal fade" role="dialog"> 
    <div class="modal-dialog"> 

    <!-- Modal content--> 
    <div class="modal-content"> 
     <%= render 'users/show', user: current_user %> 
    </div> 

    </div> 
</div> 
+0

しかし、私はちょうどアプリケーションコントローラにユーザーを表示するコントローラのアクションを追加しますか?レンダリングを行うことで、その必要性を緩和することができますか? –