저는 루비 레일이 새롭습니다. 나는 문제가 붙어있다. 나는 주제 목록을 가지고 있으며이 목록 아래에 주제를 추가 할 형식이 있습니다. 페이지를 새로 고치지 않고 제목을 추가하려고하고이 제목을 제목 목록 바로 아래에 표시하려고합니다. 새로 추가 된 제목이 데이터베이스에 삽입되고 있지만 페이지 새로 고침없이 목록 하단에 표시되지 않습니다. 여기 (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;
}
,369
<%= submit_tag 'Add', :id => 'create_button', :onClick => 'javascript:submitForm();' %>
을 대체하여 list.html.erb에서
-
나는 3.2.6
답장을 보내 주셔서 감사합니다.하지만 작동하지 않습니다 ..... ( –
@Ashish ... 감사합니다. 나는 당신의 코드를 사용했고 또한 create.js.erb 파일에서 약간의 변경을 가했다. 잘 작동한다. 도움을 주신 덕분에 –
도움을 주셨으면 좋겠다. – saihgala