2016-05-04 4 views
1

私の話題は、ブートストラップモーダルの中にコメントが表示されていることを除いて、this質問によく似ています。私はrespond_to |format| doformat.jsを使用して部分をレンダリングし、モーダルのコメントを更新できるように、部分的なコメントを作成する必要があります。コメント用の部分レールを作成する

質問#1。コメントの一部を作成するにはどうしたらいいですか?ここでは、コードされています。あなたのshow.html.erb

CommentsController 

def create 
    @photo = Photo.find(params[:photo_id]) 
    @comment = @photo.comments.build(comment_params) 
    @comment.save 
    respond_to do |format| 
     format.html { redirect_to :back } 
     format.js 
    end 
end 

UsersController 

def show 
    @user = User.find(params[:id]) 
    @photos = @user.photos.order('created_at desc').paginate(page: params[:page], per_page: 12) 
end 

Users/show.html.erb 

<% @photos.in_groups_of(3, false).each do |group| %> 
    <div class="row instagram"> 
     <% group.each do |photo| %> 
     <a data-toggle="modal" href=<%="#"+"#{photo.id}"%>> 
      <%= image_tag(photo.picture.ad.url, class: "img-responsive")%> 
     </a> 
     <div class="modal" id=<%="#{photo.id}"%> tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel"> 
     . 
     .  
     <div class="col-sm-4"> 
      <div class="instacomments"> 
      <% photo.comments.each do |comment| %> 
       <p class="commentblock"> 
        <%= link_to comment.user.name, user_path(comment.user_id)%><span> </span><%= comment.content %> 
       </p> 
      <% end %> 
      </div> 
     </div>   

答えて

1

<%= render partial: "comments/comment", collection: photo.comments, as: :comment %> 

as: :commentキーは、ビュー内の各コレクションアイテムのローカル変数の名前を設定するものです。

だから今、あなたはcomments/_comment.html.erbcomment変数を参照することができます。

<p class="commentblock"> 
    <%= link_to comment.user.name, user_path(comment.user_id)%> 
    <span> </span> <!-- Not sure why you have an empty <span> here --> 
    <%= comment.content %> 
</p> 
+0

スパンは、スペースを作成することです。それを行う別の方法がありますか? –

+0

私はあなたのユーザーリンクの右側に小さなマージンを使います。 –

+0

新しいコメントを表示するために 'create.js.erb'を使用しようとしています:' $( '。instacomments').html( "<%= escape_javascript(コメント"コメント "を、コレクション:photo.comments、 :ActionView :: Template :: Error(未定義のローカル変数またはメソッドの写真は#<#<クラス:0x007f602c070c90>:0x007f6063df7d00>): '任意のアイデアですか?現在、モーダルを閉じてブラウザをリフレッシュしてコメントを追加する必要があります。 –

関連する問題