2017-03-03 4 views
0

私は:remote => trueが期待どおりに動作しています。私はjsのリターンに問題があります。Rails | jsonファイルでプロセスjsonを返す

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" %>")