0
레일 3.2.3레일 및 아약스 - 값을 부분 뷰로 전달
AJAX를 사용하여 링크를 클릭하여 테이블에 많은 행을 삽입해야합니다. 완벽하게 작동하지만 문제가 있습니다. 부분에 값 @paged_photo
을 전달하면 null이됩니다. 그러나 그것은 확실히 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; 이 paged_photos @ 각 행 # 3 TD #there있는 것은 어떤 이유
<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로 전달하는 방법은 무엇입니까?
어떻게 부분적으로 액세스합니까? '<% = : paged_photos %>'가 작동하지 않습니다. – Alexandre
사실, 당신이 쓴 것을 할 필요가 없습니다. 컨트롤러 메서드 내에서 @my_var 변수를 정의하고 부분적으로 액세스 할 수 있습니다. – Alexandre
@AlexMaslakov 당신은 뷰에서'paged_photos' 변수에 액세스 할 수 있습니다. 예'<% = paged_photos %>'. '@ my_var' 부분에 대해 옳았지만 Ajax를 통해 렌더링하는 동안 전달되는지 여부는 의심 스럽습니다. –