2013-04-29 2 views
0

나는 PublicActivity 루비 보석을 사용하고 있는데 나는이 오류 메시지가나가서 설명하자면 NameError, 정의되지 않은 지역 변수 또는 메소드`활동 '

이 내부 그러나 /views/activities/_index.html.erb

<li> 

    <% if activity.trackable_type == "Micropost" %> 
    <%= link_to activity.owner.name, activity.owner if activity.owner %> posted 
    <% else %> 
    <%= link_to activity.owner.name, activity.owner if activity.owner %> made a comment on <%= link_to activity.recipient_id %> 
    <% end %> 

</li> 

일어나고 받고 있어요 나는이 줄을 포함 할 때, 내가 위의 <% @activities.each do |activity| %>을 추가

<li> 
<% @activities.each do |activity| %> 
    <% if activity.trackable_type == "Micropost" %> 
    <%= link_to activity.owner.name, activity.owner if activity.owner %> posted 
    <% else %> 
    <%= link_to activity.owner.name, activity.owner if activity.owner %> made a comment on <%= link_to activity.recipient_id %> 
    <% end %> 
<% end %> 
</li> 

잘 작동합니다. 오류없이 작동하지만 문제는보기에서 활동이 동일한 목록에서 반복된다는 것입니다.

이것은 activities/_index.html.erb 호출지고있는 곳입니다

views\shared\_feed.html.erb 내 활동 컨트롤러 렌더링 사용

class ActivitiesController < ApplicationController 
    def index 
    @activities = PublicActivity::Activity.order("created_at desc") 
    @activity = PublicActivity::Activity.order("created_at desc") 
    end 

end 
+2

컨트롤러에 두 변수가 같은 이유는 무엇입니까? – AlexBrand

+0

아직 작업중인 다른 문제를 해결하려고했습니다. – nextstep

답변

0

<%= render partial: 'activities/index', collection: @activities %> 

: 컬렉션과 함께 부분이의 이름으로 변수를 만든다 부분적인 이용 가능. 따라서 하나의 옵션이 있습니다. 인덱스에 대한 부분, 변화 활동에 같이

<li> 
    <% if index.trackable_type == "Micropost" %> 

는 더 좋은 _activity.html.erb에이 부분의 이름을 변경, 내부 아무 것도 변경하지 마십시오. 그것은 훨씬 더 명확해질 것입니다.

관련 문제