1
私の話題は、ブートストラップモーダルの中にコメントが表示されていることを除いて、this質問によく似ています。私はrespond_to |format| do
format.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>
スパンは、スペースを作成することです。それを行う別の方法がありますか? –
私はあなたのユーザーリンクの右側に小さなマージンを使います。 –
新しいコメントを表示するために 'create.js.erb'を使用しようとしています:' $( '。instacomments').html( "<%= escape_javascript(コメント"コメント "を、コレクション:photo.comments、 :ActionView :: Template :: Error(未定義のローカル変数またはメソッドの写真は#<#<クラス:0x007f602c070c90>:0x007f6063df7d00>): '任意のアイデアですか?現在、モーダルを閉じてブラウザをリフレッシュしてコメントを追加する必要があります。 –