1

ほとんどできました!しかし、私には問題があります.Controllerファイルには次のものがあります:

def show
   @user = User.find(params[:id])
   @posts = @user.posts.paginate(page: params[:page])
end

次に、ファイルに次のコードがありますshow.html.erb

<div class="span8">
   <%= render 'follow_form' if signed_in? %>
 <% if @user.posts.any? %>
    <h3>Microposts (<%= @user.posts.count %>)</h3>
    <div id='posts'>
      <div class='page'>
     <ol class="microposts">
        <%= render @posts %>
     </ol>
  </div>
</div>
   <% end %>
 </div>

このファイルの最後に、チュートリアルから取った Javascript コードがあります: https://github.com/amatsuda/kaminari/wiki/How-To:-Create-Infinite-Scrolling-with-jQuery

同じフォルダーに、次のファイルがありますindex.js.erb

$("#articles").append("<div class='page'><%= escape_javascript(render(@users)) %></div>");
$("#posts").append("<div class='page'><%= escape_javascript(render(@posts)) %></div>");

部分的_posts.html.erbにこれを持っています:

<div class='article'>
  <%= image_tag(user.picture_url, :width => 50) %>
  <%= link_to user.name, user %>
  <% if current_user.admin? && !current_user?(user) %>
    | <%= link_to "delete", user, method: :delete,
                              data: { confirm: "You sure?" } %>
  <% end %>
</div>

最初のものはすでに私のファイルindex.html.erbで動作しています。問題は 2 番目のコード部分にあります。部分をレンダリングしようとすると@post、次のログが表示されます。

**
'nil' is not an ActiveModel-compatible object that returns a valid partial path.
Extracted source (around line #2):
1: $("#articles").append("<div class='page'><%= escape_javascript(render(@users)) %></div>");
2: $("#posts").append("<div class='page'><%= escape_javascript(render(@posts)) %></div>");
**

その部分をどのようにレンダリングできますか?

どうもありがとう:D

4

2 に答える 2

1

私は通常、.js.erbテンプレートを使用してパーシャルを変数にレンダリングし、JSを使用してページに設定します。テンプレートコンテンツをescape_javascriptしてください。そうしないと、JSエラーが発生します。

<% template_html = render :partial => '_feed_item.html.erb' %>
<%="$('div#content').html('#{escape_javascript(template_html)}</div>');" %>

上記はerbで機能するはずだと思います。私はHAMLを使用しているので、次のようになります。

-template_html = render :partial => 'partial_template'
!="$('div#content').html('#{escape_javascript(template_html)');"

乾杯。

于 2012-09-14T07:09:23.310 に答える
0

に基づいて、ビューがこれを使用している場合In script I'm calling to /users?page=, and I was wondering that It may calls the line、コントローラーが@posts変数を設定していることを確認する必要があります。コントローラーのメソッドを表示できますusersか?

于 2012-09-17T15:05:06.383 に答える