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-rails gem 编辑数据。

<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),它使用 html 格式,而不是 js。

如果要强制转js格式,可以试试这个:

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