我在rails 3.1中运行了一个应用程序,其中一个页面显示嵌入的视频。我只想一次显示两个并且有一个AJAX选项来加载更多视频而不刷新页面。或多或少常规评论系统如何工作,例如youtube用于查看下一条评论和查看之前评论的选项。
当他们放入的部分视频通过AJAX加载时,我很难获得正确的视频。我猜这个归结为一般的问题是如何通过AJAX将参数传递给partials。我尝试了各种各样的方法,但似乎无法让它发挥作用。
_videos
<% for video in @videos %>
<p> Video #1 </p>
<%= raw youtube_embed(video.video_link) %> <%# outputs regular html, youtube_embed is a module helper %>
<% end %>
<p> testing </p>
next_videos.js.erb
$('#next_videos').replaceWith('<%=escape_javascript(render(:partial => 'videos'))%>');
控制器方法
def next_videos
@videos = Video.find_all_by_id('1')
respond_to do |format|
format.html { redirect_to(root_path, :notice => 'Error') }
format.js # the actual ajax call
end
end
我想一次展示两个视频。我想通过一个与@videos一起传递给部分的计数器来实现这一点。实现这样的事情的最佳方法是什么?我是以错误的方式来做这件事的吗?此外,我已经读过相互矛盾的论点,你不能GET或POST部分。如果有人能对此有所了解,我们将不胜感激。提前谢谢。
答案 0 :(得分:0)
在您的视频中,您应该写一些类似的内容
<% for video in videos %>
<p> Video #1 </p>
<%= raw youtube_embed(video.video_link) %> <%# outputs regular html, youtube_embed is a module helper %>
<% end %>
<p> testing </p>
注意视频不是@videos,因为您将其作为本地传递
答案 1 :(得分:0)
我发现实现此目的的最佳方法是使用会话变量来跟踪AJAX请求之间显示的当前视频。