在ruby on rails上显示表单提交时没有页面刷新的结果数据

我在铁轨上的ruby很新。 我遇到了问题。 我有一个主题列表,在这个列表下面我有一个表单来添加主题。 我正在尝试添加没有页面刷新的主题,并在主题列表下方显示此主题。 新添加的主题是插入数据库,但没有页面刷新,它不会显示在列表的底部。 这是我的控制器(subject_controller.rb)

class SubjectController  'subject', :object => @subject end end end 

这是我的部分文件(_subject.html.erb)

 <li id="subject_">  'show', :id => subject.id %>   

这是我的查看页面(list.html.erb)

 
  • 'show', :id => c.id %>
{:action => 'create'}, :update => "subject_list", :position => :bottom, :html => {:id => 'subject_form'}, :remote => true) do %> Name: 'create_button', :onClick => 'javascript:submitForm();' %>

这是我的js文件

 function submitForm(){ jQuery.ajax({ type: 'POST', //url: "/subject/create", data:jQuery('#subject_form').serialize(), error: function(){ }, success: function(data){ alert(data) }, complete: function (){ } }); return false; } 

我正在使用ruby 1.9.3和rails 3.2.6

你应该做以下事情 –

  1. 在list.html.erb中替换

     <%= submit_tag 'Add', :id => 'create_button', :onClick => 'javascript:submitForm();' %> 

 <%= submit_tag 'Add', :id => 'create_button' %> 

2.使用以下内容创建新视图create.js.erb –

 $("#subject_list").innerHTML += "<%= escape_javascript(render(:partial => 'subject')) %>" 

3.更新您的控制器方法 –

  if @subject.save #render :partial => 'subject', :object => @subject respond_to do |format| format.js end end 

4.最后在你的主题部分使用实例变量“@subject”而不是“subject”并丢弃你的js文件。

Interesting Posts