1

これは私のアップデートコントローラーです

 def update
    @subject = Subject.find(params[:id])
    respond_to do |format|
      if @subject.update_attributes(params[:subject])
        @subjects = Subject.all
 #format.html { render :partial => "list"}
        format.js #{ render :js => "$('#list1').html('');"}
      end
    end
  end

これは私のjsファイルupdate.js.erbです

   $('#list1').html('');
   $("#list1").html("<%= escape_javascript( render(:partial => "list") ) %>");

これは_list.html.erbファイルであり、これではjeditable-railsgemを使用してデータが編集されます。

<h1>Listing subjects</h1>

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

<% @subjects.each do |subject| %>
  <tr>
    <td><%= editable_field subject, :name, :remote=> true %></td>
    <td><%= link_to 'Show', subject %></td>
    <td><%= link_to 'Edit', edit_subject_path(subject) %></td>
    <td><%= link_to 'Destroy', subject, :method => :delete, :data => { :confirm => 'Are you sure?' } %></td>
  </tr>
<% end %>
</table>

これは、これらのインデックスと'list1'divを使用しているインデックスページです。

<div id="list1"><%= render :partial => "list" %></div>
<div id="form"><%= render :partial => 'form' %></div>

しかし、私のターミナルは示しています

Processing by SubjectsController#update as HTML

JSとして処理したい

4

1 に答える 1

2

Jeditable gemはわかりませんが、与えられた例(https://github.com/afeld/jeditable-rails)によると、jsではなくhtml形式を使用しています。

js形式に強制したい場合は、これを試すことができます:

<%= editable_field subject, :name, :update_url => "#{url_for(object)}.js" %>
于 2012-12-19T10:32:10.097 に答える