コメントの基本的な .each ステートメントがあり、その下部に新しいコメントを追加するフォームがあります。目標は単純ですが、私はかなり試してみましたが、うまくいきません。誰かがフォームにコメントを送信すると、そのコメントがすぐ上に表示され、jQuery を使用してフォームを下に移動させたいと思います。これは問題なく動作していますが、2 つの問題があります。
トライアングル ライトという CSS クラスを継承するには、jQuery によって表示される新しいコメントが必要です。
フォームをクリアする必要があります。送信後、最後のコメントが保持されます。
ここにjQueryがあります。繰り返しますが、CSS クラス triangle-right を使用して表示し、フォームをクリアするには、@comment.recommendation が必要です。#newrec はフォームです。
$('#newrec').before('<%= escape_javascript(@comment.recommendation) %>');
役立つ場合は、ここにビューがあります。
<% recs.each do |r| %>
<% name = User.find_by(:id => r.user_id)%>
<p class = "triangle-right" id ="comment_<%=r.id%>">
<b><%=name.first_name.capitalize %> <%=name.last_name.capitalize %></b>: <%=r.recommendation %></br></br>
<%= link_to '<i class="icon-edit"></i>'.html_safe, edit_comment_url(r),class:"btn btn-warning" if current_user.present? && r.user_id == current_user.id %>
<%= link_to '<i class="icon-trash"></i>'.html_safe, comment_url(r), class:"btn btn-danger", method: 'delete', remote: true if current_user.present? && r.user_id == current_user.id %>
</p>
<%end%>
<!-- LIST OF RECOMMENDATIONS IS ABOVE -->
<!-- FORM FOR RECS BELOW -->
<div>
<%= form_tag(commentpost_url, id: "newrec", method: 'post', remote: true) do %>
<h4><%= "Give your recommendations:" if current_user.present? %></h4>
<%= text_area_tag :recommendation, nil, class: "rectextarea", id: "new_rec" if current_user.present? %>
<%= hidden_field_tag :trip_detail_id, d.id %>
<%= hidden_field_tag :user_id, current_user.id if current_user.present?%>
<div>
<% if current_user.present? && @trip.userid == current_user.id %>
<%= submit_tag 'Add Comment', class: "btn btn-large btn-success" if current_user.present? %>
<%else%>
<%= submit_tag 'Submit Recs!', class: "btn btn-large btn-success" if current_user.present? %>
<%end%>
</div>
<% end %>
そして最後にコントローラー
def create
@comment = Comment.new
@comment.recommendation = params[:recommendation]
@comment.trip_detail_id = params[:trip_detail_id]
@comment.user_id = params[:user_id]
if @comment.save
respond_to do |format|
format.html { redirect_to :back, notice: 'Rec was successfully created.' }
format.json { render action: 'show', status: :created, location: @comment }
format.js
end
else
render 'new'
end
終わり
ありがとう!