[英]Ajax call with dropdown list
我试图遵循这个问题,但是我被困住了。 在我的控制器中,我有:
def index
if params[:sort] == 'stars'
@projects = [Project.first]
else
@projects = Project.all
end
respond_to do |format|
format.html
format.js { render 'populate_projects', :formats => [:js] }
end
end
在路线上:
get '/inspire/:sort' => 'projects#index'
鉴于:
= collection_select :project, :id, Project.all, :id, :name, {}, {:onchange => '$.get("/inspire/stars")'}
%div#normal
= render 'projects_list'
%div#stars{ style: 'display: none' }
我的_projects_list.html.haml具有:
%div
- @projects.each do |project|
%div
%p
#more code...
最后在populate_projects.js.haml中:
:plain
$("#stars").html("#{escape_javascript render(partial: 'projects/projects_list')}");
$("#normal").hide();
$("#stars").show();
可能该程序没有意义,因为我正在测试ajax调用是否正常工作。 但是,应该发生的是,当我更改下拉列表的状态时,必须进行ajax调用,从而呈现“ propulate.js.haml”,并且项目列表必须从全部更改为仅第一项,但不是。 在我的终端中,我可以看到正在进行调用,但是从未渲染出“ populate.js.haml”。 有人可以帮忙吗?
确保您的Ajax调用请求JS格式:
= collection_select :project, :id, Project.all, :id, :name, {}, {:onchange => '$.get("/inspire/stars.js")'}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.