2012-12-30 2 views
1

나는 3 개의 변수가 있고 나는 다른 전망에서있는 다른 js 파일을 부르고 싶다.상황에 따라 js 파일을 호출하도록 전환하려면 어떻게해야합니까?

  • 내가
  • 을 /views/community_topics/refresh.js.erb 전화를 걸> @community_topic = 경우
  • 을 /views/communities/refresh.js.erb 전화를 걸> @community = 경우 ifuser => /views/users/refresh.js.erb에 전화하고 싶습니다.

어떻게 코드를 작성할 수 있습니까?

respond_to do |format| 
     format.html { redirect_to @community, :notice => "comment added!" } 
     format.js { } 
    end 
+0

왜 당신은'@ @ community.nil? render "communities/refresh.js.erb"' –

답변

1

단지 뷰를 렌더링한다고 가정 해 봅시다.

respond_to do |format| 
    format.html { redirect_to @community, :notice => "comment added!" } 
    format.js do 
    if @community.present? 
     render 'communities/refresh' 
    elsif @community_topic.present? 
     render 'community_topics/refresh' 
    elsif @user.present? 
     render 'users/refresh' 
    end 
    end 
end 

하지만 모두 컨트롤러가 기본 REST 규칙을 위반한다고 생각하지 않습니까? 따라서 처음에는 컨트롤러의 구조를 다시 생각해야한다고 생각합니다. 은 각각 (@community, @community_topic 또는 @user) 개체 중 하나를 담당하는 세 가지 메서드가 있습니다.

+0

이것은 완벽하게 작동합니다. 감사합니다. 내 방식이 REST 규칙에 위배됩니다. 그러나 공통적으로 사용되며 주석을 게시하기 위해 다른 모델에서 호출되는 comments_controller.rb라는 컨트롤러를 만들면 어떻게 될까요? 그것은 다 형체 – MKK

+1

[다형성 연관 railscasts] (http://railscasts.com/episodes/154-polymorphic-association)을보십시오. Rails 2.3 용으로 작성되었지만 Rails 3에서도 잘 작동해야한다. –

+0

대단히 감사합니다! – MKK

관련 문제