我的网站包含照片和视频以及3个按钮。一个只显示照片,一个只显示视频,最后一个显示照片&视频。我在数据库中有两个不同的表(照片,视频),其中只包含文件的名称。他们之间没有任何关系 以下是我的AJAX仅用于显示视频的示例:
jQuery(document).ready(function() {
$('#btn-videos').on('click', function(e){
e.preventDefault();
$.ajax({
type:'GET',
url:'/galerie',
dataType: 'json',
data: { 'type' : "videos", }
});
});
});
这是我的节目主持人控制器:
def index
case params[:type]
when "videos"
@medias = Video.order('created_at DESC')
when "images"
@medias = Picture.order('created_at DESC')
else
@medias = (Video.order('created_at DESC') + Picture.order('created_at DESC')).sort_by { |model| model.created_at }.in_groups_of(3)
end
end
我的AJAX正在调用控制器,但它不会更新视图 他们是(更好)的方式吗?我也想知道是否可以仅使用sql执行此行:
@medias = (Video.order('created_at DESC') + Picture.order('created_at DESC')).sort_by { |model| model.created_at }.in_groups_of(3)
答案 0 :(得分:1)
您可以通过两种方式执行此操作:
在资产的js文件中使用ajax。 ajax请求成功后,您需要将旧数据替换为您请求的新数据。
$('#btn-videos').on 'click', ->
e.preventDefault();
$.ajax
type:'GET',
url:'/galerie',
dataType: 'json',
data: { 'type' : "videos", }
success: (data) ->
console.log(data)