アップデート
モデル呼び出しをから変更することで、うまく機能させることができます
@comments = VideoComment.all(:conditions => { :video_id => @video.id}, :limit => 5, :order => :created_at)
@comments = VideoComment.last(5).reverse
それは機能しますが、すべてのビデオからの最後のビデオコメントが表示されますが、現在のビデオからのコメントのみが必要です ( @video.id
)。
それを行う方法の手がかりはありますか?
Video
コントローラーと、コントローラーVideoComments
のコメントを管理するコントローラーがありますVideo
。リモート フォームに ajax を使用してコメント リストを更新させようとしていますが、うまくいかないようです。私が間違ったことを見つけることができますか?
番組ページの HTML コード:
- if current_user
#comment-form
= render 'video_comments/comment_form'
%ul
#comments
= render @comments
video_comments/_comment_form.html.haml
= form_for current_user.video_comments.build(:video_id => params[:id]), :remote => true do |f|
.form-fields
.comment-content
= f.text_area :content, rows:2
= f.hidden_field :video_id
= f.hidden_field :user_id
.submit-form
= f.submit "Add a comment", :class => "btn btn-default "
Video_Comments
コントローラーのcreate
アクション:
def create
@comment = VideoComment.create(params[:video_comment])
@video = @comment.video
@comments = VideoComment.all(:conditions => { :video_id => @video.id}, :limit => 5, :order => :created_at)
render :toggle
end
ページのtoggle.js.erb
変更を管理するファイル:
$("#comment-form").html("<%= escape_javascript render 'comment_form' %>");
$("#comments").html("<%= escape_javascript render @comments %>");