0

Rails 3.2.3

AJAXを使用してリンクをクリックして、テーブルに多くの行を挿入する必要があります。完璧に動作していますが、問題があります。@paged_photo 値をpartialに渡すと、そこではnullになります。ただし、これは間違いなくnullではなく、データが含まれています。

#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は何らかの理由でここではnullです

<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_photoshome/_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 に答える