ユーザーが投稿にコメントできるようにしたいと思います。各提出物の下に、「コメント(2)」というリンクが必要です。このリンクをクリックすると、コメントが動的に読み込まれ、新しいコメントを追加するための簡単なフォームが表示されます。ユーザーが新しいコメントを送信すると、リストの一番下に非同期で読み込まれるようにします。
私が今それをどのように機能させているかは次のとおりです:
// index.html.erb
<p class="comments_view_toggle">
<%= link_to_remote("▼ view comments (#{answer.comments.count})", :controller => "comments", :action => "show", :submission => submission, :update => "comment") %>
</p>
// comments_controller.rb
def show
@submission = Submission.find(params[:submission])
respond_to do |format|
format.html { redirect_to root_url }
format.js
end
end
// show.rjs
page.insert_html :bottom, :comment, :partial => 'show', :locals => { :submission => @submission }
// _show.html.erb
<ul id="comment_list">
<%= render :partial => 'comments/comment', :collection => submission.comments %>
</ul>
<div class="clear"></div>
<% form_remote_for Comment.new do |f| %>
<%= hidden_field_tag(:submission_id, answer.id)%>
<%= hidden_field_tag(:user_id, current_user.id)%>
<%= f.text_area :message %>
<%= f.submit "comment", :disable_with => 'commenting...' %>
<% end %>
トグル機能の2番目の部分(非表示)についてはまだ作業していません。リンクをクリックするたびに、部分を実行するだけでなく、リンクの下にページ全体が再読み込みされるため、理由がわかりません。パラメータを正しく渡していないようです。私はこれについてすべて間違っていますか?私を正しい方向に向けてもらえますか?