Ajax post请求不会在rails上的ruby中使用render进行更新

时间:2011-11-01 09:41:02

标签: ruby-on-rails ajax render

我有一个表单,使用"remote => true"将2个字段发布到服务器,并且我的控制器中有format.js

如果我在我的create.js.erb中使用对象值,它可以正常工作但如果我想渲染一个包含的文件,则js无法这样做。

我有一个带有id的容器div,它将使用数据进行更新。

create.js.erb文件如下所示:

$('#container').html(<%= escape_javascript(render('index')) %>); 

我的控制器看起来像这样:

 def create
    @casepost = Casepost.new(params[:casepost])

    respond_to do |format|
      if @casepost.save

        @caseposts = Casepost.all

        format.html
        format.js# { render json: @casepost, status: :created, location: @casepost }
      else

        @caseposts = Casepost.all

        format.html { render action: "new" }
        format.js# { render json: @casepost.errors, status: :unprocessable_entity }
      end
    end
  end

我要渲染的文件会显示名为@caseposts的数组的内容。

<table>
  <tr>
    <th>Title</th>
    <th>Body</th>
    <th></th>
    <th></th>
    <th></th>
  </tr>

<% @caseposts.each do |casepost| %>
  <tr>
    <td><%= casepost.title %></td>
    <td><%= casepost.body %></td>
    <td><%= link_to 'Show', casepost %></td>
    <td><%= link_to 'Edit', edit_casepost_path(casepost) %></td>
    <td><%= link_to 'Destroy', casepost, confirm: 'Are you sure?', method: :delete %></td>
  </tr>
<% end %>
</table>

<br />


<%= link_to 'New Casepost', new_casepost_path %>

0 个答案:

没有答案