は5

2017-11-18 4 views
0

私のホームページには、投稿の一覧を表示し、私はポストをクリックしたとき、それは、新しいページとしてオープンは5

が、私はホームページに滞在する必要がありますショーページをモーダルとして公開します。どのようなアイデア?

変更がjsのためのあなたのshowアクションは

def show 
    @post = Post.find(params[id]) 
    respond_to do |format| 
     format.js 
    end 
    end 

が、これはポストインデックスの最後にDIV追加要求...

+0

これを行うには、おそらく最も効率的な方法一部の記事を追加/新しいファイル投稿を追加AJAXを使用することです。サーバーにAJAXリクエストを送信し、結果を受け取り、それを使用してモーダルを設定します。ページにいくつかの投稿しかない場合は、すべてのモーダルを1ページにレンダリングしてから、javascriptを使用して適切なものを非表示にして表示することができます。 –

+0

hmm、方向をありがとう、私はAJAXについて次に調査します。私は何百ものアイテムを持っています。 – Designer

答えて

1

ソリューションを使用すると、ブートストラップを使用している前提であるありがとう

<div id='post-content'></div> 

あなたのリンク先ページは次のようになっている必要があります今

<%= link_to 'View Post', post_path(post), remote: true %> 

show.js.erb

$('#post-content').html("<%= j render 'post_modal', post: @post %>"); 
$('#post-modal').modal('show'); 

は/ _post_modal.html.erb

<div id="post-modal" class="modal fade" role="dialog"> 
    <div class="modal-dialog modal-lg"> 
    <div class="modal-content"> 
     <div class="modal-header"> 
     <button type="button" class="close" data-dismiss="modal">&times;</button> 
     </div> 

     <div> 
     --- put all your show.html.erb code here 
     </div> 
    </div> 
    </div> 
</div> 
+0

ありがとうございました!私はブートストラップを使用していない、私はまだあなたの方法で解決しようとします。ありがとうございます – Designer

+0

うわー!それは実際に働いた!ありがとうございました!私はあなたのアプローチを今よりよく学ぶために勉強しています。ありがとうございました! Btwどうすれば共有することができるようにURLを保持することができますか?現在、私はエラーが発生します。https://i.imgur.com/9wjw720.png – Designer

+0

あなたはリモートから見逃しているようです:あなたのlink_toタグで真<%= link_to 'View Post'、post_path(post)、remote:true%> –