0

Rails 3 アプリに Ajax リクエストを実装することは、これまでで最もイライラすることの 1 つです。オンラインで人々の指示に従おうとして何日も無駄にした後、私にとってうまくいくように見える唯一のことは ajax delete です。

私のサイトのユーザーには、上部にいくつかの情報で構成されるプロフィール ページがあり、次にいくつかの異なる履歴書があり、それぞれがページのタブに含まれています。各履歴書には学歴が含まれており、動的に追加および更新できるようにしたいと考えています。つまり、User has_many の履歴書があり、各履歴書には has_many の教育があります。各履歴書を id と同じ id の div でレンダリングします。これは、フォーム送信時に ajax でリロードしたい div です。ここに小さなコードがあります。
ユーザー/ショー:

...
<%= render partial: 'shared/resume' %>
...

共有/再開:

<% if @resumes.any? %>
  <div class="tab-content" id="tabResumes">
     <%= render partial: 'shared/resume_item', collection: @resumes %>
  </div>
  <%= will_paginate @resumes %>
<% end %>

共有/resume_item:

<div class="tab-pane" id="<%= resume_item.id %>">
 ...
 # here I render a few different partials which display the different elements of the resume, such as educations. 
 # I'd like to reload this area on form submission.
 ...
</div>

教育_コントローラー:

def create
@resume = Resume.find(params[:resume_id])
@education  = @resume.educations.build(params[:education])
respond_to do |format|
 if @education.save
  format.html  { redirect_to(@student, :notice => 'Education created.') }
  format.js
 else
  format.html {render :action => "new" }
  format.js
  end
 end
end

ビュー/教育/create.js.erb

$('#<%=@resume.id%>').html("<%= escape_javascript()%>"); //not sure what to call here, nothing I've tried has given me any success.

また、更新を同じ div で更新したいのですが、最初に create を機能させたいと考えていました。これを機能させる方法について誰かアドバイスはありますか?私が得ているように、ajax送信は通過しているようです

Rendered educations/create.js.erb
Completed 200 OK in 52ms

コンソールで。

4

1 に答える 1

0

create.js.erb次の行に沿って試してみてください。

$('#<%= @resume.id %>').replaceWith("<%= escape_javascript render(:file => 'shared/resume_item.html.erb') %>");

または、 replaceWithの代わりにjquery .appendTo メソッドを使用することもできますが、この場合はうまくいくと思います。replaceWith

于 2012-05-10T18:28:35.143 に答える