2017-03-03 29 views
0

我有一个:remote => true按预期工作。我在js回归中遇到了麻烦。Rails |过程json返回在js文件

def myfunc 
... 
    respond_to do |format| 
       if !response.nil? 
        r = response.to_hash 
        format.js { render :json => {:IsLoggedIn => true, :response => r }} 
        format.html 
       else 
        @error = "Try again" 
        format.js { render :json => {:IsLoggedIn => false, :response => @error }} 
        format.html 
       end 
      end 

end 

然后在myfunc.js.erb我怎样才能得到IsLoggedIn & response值?

回答

0

根据你的情况,你只在js中使用这个函数。所以写它象下面这样:

def myfunc 
... 
    @r = response 
end 

在你myfunc.js.erb,写出如下:

<% if @r.present? %> 
    {:IsLoggedIn => true, :response => @r } 
<% else %> 
    {:IsLoggedIn => true, :response => "Try Again" } 
<% end %> 

@r is available in js.erb , so you set it your html div like $("#yourdivid").val("<%= @r.id" %>")