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; 
} 
,369

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

을 대체하여 list.html.erb에서

  1. -

    나는 3.2.6

답변

0

다음을 수행해야 루비 1.9.3을 사용하고 레일 해요 와 함께

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

2. 새로운보기 c 다음과 같은 내용으로 reate.js.erb -

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

3. 업데이트 컨트롤러 방법 - 대신 "주제의"@subject "당신의 주제 부분 사용 인스턴스 변수에

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

4. 그리고 마지막으로 "js 파일을 버립니다.

+0

답장을 보내 주셔서 감사합니다.하지만 작동하지 않습니다 ..... ( –

+0

@Ashish ... 감사합니다. 나는 당신의 코드를 사용했고 또한 create.js.erb 파일에서 약간의 변경을 가했다. 잘 작동한다. 도움을 주신 덕분에 –

+0

도움을 주셨으면 좋겠다. – saihgala

관련 문제