Rails 3.2.3
我需要通过使用AJAX单击链接为表插入许多行。它的工作完美,但存在问题。当我将值@paged_photo
传递给partial时,它会在那里为null。但它绝对不是空的,它包含数据。
#家/ index.html.erb
<table id="photos_table">
<%= render :partial => 'test_partial' %>
</table>
<%= link_to "More photos", {:controller => "home", :action => "test_method" }, :remote => true %>
#家/ _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>
#家/ 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以为表插入行?
答案 0 :(得分: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:我不理解在#
<%=j
之前使用home/test_method.js.erb
的情况。这只是一个错字还是故意的?