0

导轨 3.2.3

我需要通过单击使用 AJAX 的链接为表插入许多行。它工作完美,但有一个问题。当我将值传递@paged_photo 给部分时,它在那里为空。但是它绝对不是空的,它包含一个数据。

#home/index.html.erb

<table   id="photos_table">
  <%= render :partial => 'test_partial'  %>
</table>
  <%= link_to "More photos",  {:controller => "home", :action => "test_method" }, :remote => true %>

#home/_test_partial.html.erb ; #每行有 3 个 td #@paged_photos 出于某种原因在这里为空

<tr>
<td>
   <%= link_to :controller => 'photos', :action => 'show', :id=>@paged_photos[0].id do %>
       <%=image_tag(@paged_photos[0].source)%>
   <%end%>
</td>
<td>
   <%= link_to :controller => 'photos', :action => 'show', :id=>@paged_photos[1].source do %>
       <%=image_tag(@paged_photos[1].source)%>
   <%end%>
</td>
<td>
   <%= link_to :controller => 'photos', :action => 'show', :id=>@paged_photos[2].id do %>
       <%=image_tag(@paged_photos[2].source)%>
   <%end%>
</td>
</tr>

#home/test_method.js.erb

$('#photos_table').append('# <%=j render :partial => 'test_partial'%>');

控制器

   def test_method
        @paged_photos = get_photos        
        respond_to() do |format|
          format.js
        end
     end

如何将值传递给 partial 以在表格中插入一行?

4

1 回答 1

1

您可以尝试在您的 中使用以下内容home/test_method.js.erb吗?

$('#photos_table').append('<%=j render :partial => 'test_partial', :paged_photos => @paged_photos %>');

在此之后,访问paged_photos.home/_test_partial.html.erb

如果可行,您将不得不home/index.html.erb像这样修改您的

<%= render :partial => 'test_partial', :paged_photos => @paged_photos %>

PS:我没看懂#before <%=jin的用法home/test_method.js.erb。这只是一个错字还是故意的?

于 2012-07-15T07:26:33.290 回答