2013-09-03 1 views
0

통해 다른 컨트롤러 인스턴스 변수를 전달 제가 가지고 application.js에서레일 : 종류별보기 부분

<ul> 
    <% @category.subcategories.each do |subcategory| %> 
    <li> 
     <h6> 
     <%if subcategory.has_topic_headings? %> 
      <%= link_to subcategory.name, { controller: 'subcategories', 
              action: 'show_topic_headings', 
              category_id: subcategory.category_id, 
              id: subcategory.id 
             }, data: 'topic_heading_link', 
             remote: true %> 
     <% else %> 
      <%= link_to subcategory.name, subcategory %> 
     <% end %> 
     </h6> 
     <hr> 
    </li> 
    <% end %> 
</ul>    

:

/* slides in the subcategory menu or the content */ 
$('.category-menu a').on(
'click', 
function(e) { 
    if ($(this).attr('data')) { 
    /* make submenu visible */ 
    $('.stretched.nav.row > .slider').animate({left:'-62.5em'}); 
    e.preventDefault(); 
    } 
    else { 
    /* make content visible */ 
    $('.stretched.main.row > .slider').animate({left:'-62.5em'}); 
    e.preventDefault(); 
    } 
} 
); 

subcategories_controller.rb에서

def show_topic_headings 
    respond_to :js 
    @subcategory = Subcategory.find(params[:id]) 
    end 

그리고 하위 카테고리/show_topic_heading에 내가 가지고있는 것 :

활성화 된 링크를 클릭하면 .subcategory-menu에 올바른 내용이 채워 져야하고 div가 들어 있어야합니다. 그러나 정적 인 경우에만 내용이 표시됩니다 (예 : @subcategory에 대한 참조). 부분 하위 범주를 삽입하는보기는 범주보기입니다.

답변

1

문제는 subcategories_controller에있다 :

respond_to 아닌 함수 자체가 부분 생성한다. 따라서 respond_to를 호출하기 전에 인스턴스 변수를 선언해야합니다.

def show_topic_headings 
    @subcategory = Subcategory.find(params[:id]) 
    respond_to :js 
end