ruby-on-rails – Rails:通过Ajax渲染部分
发布时间:2020-12-16 23:34:37 所属栏目:百科 来源:网络整理
导读:我有一个带有选项卡的页面,我想在单击选项卡时通过ajax呈现不同的部分.我有一些代码,但我不认为这是最有效的方式.我希望是否有人可以帮助我使用已经存在的代码,或者如果有更简单的方法我会非常感激.谢谢! HTML标签 li class='StreamTab StreamTabRecent act
我有一个带有选项卡的页面,我想在单击选项卡时通过ajax呈现不同的部分.我有一些代码,但我不认为这是最有效的方式.我希望是否有人可以帮助我使用已经存在的代码,或者如果有更简单的方法我会非常感激.谢谢!
HTML标签 <li class='StreamTab StreamTabRecent active'> <%= link_to 'Most Recent',mostrecent_schools_path,:remote => true,:class => 'TabText' %> </li> <div id='ContentBody'> <div id='ajax'></div> <%= render 'users/microposts',:microposts => @microposts %> </div> 学校管理员 class SchoolsController < ApplicationController def mostrecent @school = School.find_by_slug(request.url.gsub('http://localhost:3000/','')).id @microposts = @user.microposts.order('created_at DESC').paginate(:per_page => 3,:page => params[:page]) respond_to do |format| format.html format.js end end end 最近的JS $("#ContentBody").html('<%= escape_javascript(render :partial => "users/microposts" )%>'); 路线 resources :schools do collection do get :mostrecent end end 解决方法
请参阅我之前的帖子的答案.这会给你一个想法
AJAX in Rails: Show model#new form after completing a model#update
你可以做的是在动作中渲染一个json并将部分传递给json. def mostrecent @school = School.find_by_slug(request.url.gsub('http://localhost:3000/','')).id @microposts = @user.microposts.order('created_at DESC').paginate(:per_page => 3,:page => params[:page]) respond_to do |format| format.json { render :json => {:success => true,:html => (render_to_string 'users/microposts')} } format.html { } end end 您可以访问js中的json(即javascript / coffeescript文件,例如mostrecent.js或mostrecent.js.coffee)并替换当前元素. $('.TabText').live 'ajax:success',(event,data) -> $('#ContentBody').html(data.html) if(data.success == true) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |