2010-07-10 3 views
0

RJS 파일에서 루비 코드를 사용할 수 있습니까? 예를 들어레일 - RJS 파일에서 루비 코드를 사용할 수 있습니까?

,이는 AJAX 호출에서 그래서

def destroy 
    @viewer = Viewer.find(params[:id]) 
    @viewer_registry = Registry.find(@viewer.registry_id) 
    @viewer.destroy 
    flash[:notice] = "Viewer deleted" 
    @template = params[:template] 
    params[:template] = nil 
    respond_to do |format| 
     format.html { redirect_to registry_path(@viewer_registry) } 
     format.js 
    end 
    end 

이있는 파괴 행위에서 호출 RJS 파일입니다

if @template == "viewer" 
    page["viewing_registry_#{@viewer_registry.id}"].replace_html :partial => "shared/request_viewer_link" 
else 
    page["viewer_#{@viewer.id}"].visual_effect :DropOut, :duration => 2.0 
    flash.discard 
end 

destroy.js.rjs 파일은 RJS 파일이 사용됩니다 응답을 보내고 템플리트가 destroy 액션을 호출하는 방식에 따라 다른 응답을 제공합니다.

현재 AJAX 호출이 이루어지고 레코드가 파괴되고 어떤 템플릿이 파괴 작업을 호출하는지에 관계없이 아무 일도 발생하지 않습니다. 그래서 RJS 파일에서 루비 코드를 사용할 수 없기 때문에 단순히 작동하지 않는지 궁금합니다. 어떤 아이디어? 아니면 완전히 잘못하고있는 것입니까?

감사합니다.

def destroy 
    #is this bad because its not linked to current_user? 
    #how would you even set it to be relational to current_user? 
    @viewer = Viewer.find(params[:id]) 
    @viewer_registry = Registry.find(@viewer.registry_id) 
    @viewer.destroy 
    flash[:notice] = "Viewer deleted" 
    respond_to do |format| 
     format.html { redirect_to registry_path(@viewer_registry) } 
     format.js { 
     if params[:template] == "viewer" 
      render :action => "viewer_destroy.js.rjs" 
     else 
      render :action => "destroy.js.rjs" 
     end 
     } 
    end 
    end 

그래서있어 2 RJS 대신 파일을, 다른 사람이 들어오는 템플릿 이름을 기준으로 사용된다 :이처럼 보였다 있도록

답변

0

오른쪽, 나는 파괴 기능을 redid. 예!

관련 문제