1
我在軌道上的紅寶石非常新。我遇到了一個問題。我有一個主題列表,在這個列表下面我有一個添加主題的表單。我正在嘗試添加沒有頁面刷新的主題,並在主題列表下方顯示此主題。新添加的主題將插入數據庫,但不會在沒有頁面刷新的列表底部顯示。 這是我的控制器(subject_controller.rb)在軌道上的紅寶石表單提交時不顯示頁面刷新的結果數據
class SubjectController < ApplicationController
layout 'standard'
def list
@subjects = Subject.find(:all)
end
def show
@subject = Subject.find(params[:id])
end
def create
@subject = Subject.new(params[:subject])
if @subject.save
render :partial => 'subject', :object => @subject
end
end
end
這是我的部分文件(_subject.html.erb)
<li id="subject_<%= subject.id %>">
<%= link_to subject.name, :action => 'show', :id => subject.id %>
<%= "(#{subject.books.count})" -%>
</li>
這是我的視圖頁面(list.html.erb)
<ul id="subject_list">
<% @subjects.each do |c| %>
<li><%= link_to c.name, :action => 'show', :id => c.id %>
<%= "(#{c.books.count})" -%></li>
<% end %>
</ul>
<div id="add_subject">
<%= form_for(:subject, :url => {:action => 'create'},
:update => "subject_list", :position => :bottom,
:html => {:id => 'subject_form'}, :remote => true) do %>
Name: <%= text_field "subject", "name" %>
<%= submit_tag 'Add', :id => 'create_button', :onClick => 'javascript:submitForm();' %>
<% end %>
</div>
這裏是我的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和3.2.6軌道
感謝您的回覆,但它也不工作..... :( –
@Ashish ...非常感謝,親愛的,它現在正在工作:) :) :)。我用你的代碼,並在create.js.erb文件中做了一點改動,它的工作正常。你的幫助表示讚賞 –
很高興幫助 – saihgala