1

私は、ajaxフォームを使用したサンプルformtasticでajax保存を正常に試しました。

新しい値がデータベースに追加されます。しかし、問題は、ajaxを介して保存するとすぐにデータベースからリストを取得することです。

どうやってするの。?

新しいレコードを追加したらすぐに、表示リストを更新します。新しいレコードを追加するオプションとデータベースからのデータを一覧表示するオプションの両方が同じページにあります

これは私のインデックスページです。コントローラーと足場を介して作成された他のすべて

<h1>Listing samples</h1>

<table>
  <tr>
<th><%=t :Name%></th>
    <th></th>
    <th></th>
    <th></th>
  </tr>

<% @samples.each do |sample| %>
  <tr>
    <td><%= sample.name %></td>
    <td><%= link_to 'Show', sample %></td>
    <td><%= link_to 'Edit', edit_sample_path(sample) %></td>
    <td><%= link_to 'Destroy', sample, :method => :delete, :data => { :confirm => 'Are you sure?' } %></td>
  </tr>
<% end %>
</table>

<br />

<%= link_to 'New Sample', new_sample_path %>

<br /><br /><br /><br /><br />
<%= semantic_form_for @sample1,:url => samples_path, :remote => true do |f| %>
  <%= f.inputs do %>

    <%= f.input :name %>
  <% end %>
  <%= f.actions do %>
    <%= f.action :submit, :as => :input %>
  <% end %>
<% end %>
4

2 に答える 2

4

ajax 経由で保存する場合、コントローラーの応答方法を次のように変更する必要がある場合があります。

def create
  # stuff
  respond_to do |format|
    format.js
  end
end

これを行うと、Rails は、ビューのデータを操作できる という名前のファイルが作成されていることを期待しますcreate.js.erb(テーブルに新しいコンテンツを追加したり、新しいオブジェクト リストでまったく新しいパーシャルをレンダリングしたりするなど):

$('#your_list').html(
  "<%= escape_javascript(render('your_table_partial')) %>"
);

または

$('#your_list').append(
  "<%= escape_javascript(render('your_item_of_the_table_partial')) %>"
);

これらは単なる例です。正しいコードを書くのに十分なほどあなたのコードを知りませんが、これらを作業のベースとして使用することはできます。

于 2012-12-12T10:32:05.190 に答える
2

これらのガイドラインを使用してCRUD操作を行ったところ、完璧に機能しました

http://stjhimy.com/posts/07-creating-a-100-ajax-crud-using-rails-3-and-unobtrusive-javascript

于 2012-12-18T05:47:31.010 に答える