2016-04-23 11 views
0

私はこの部分に2つの変数:coursetitleroutenumberを持っています。ビューからこれらの変数を設定しようとしましたが、グローバル化しない限り、これらの変数にアクセスすることはできません。私はビューまたはコントローラのいずれかからこれらの変数を渡す方法を探していますが、なぜ私はそれらをビューから設定できないかについて少し失われています。Rails、リモート部分ローカル変数を与える

<div> 
<h2> Correct!</h2>  

     <%= link_to "Next", "/courses/#{coursetitle}_q#{routenumber}",class:"btn btn-warning" %> 
     <%= render 'layouts/coursefooter' %> 


     <!-- fix for bootstrap navbar render bug --> 
     <script> 
     $(".puller").addClass("pull-left"); 
     </script> 

私はによって部分的にこれを呼び出す:リモートこのような:

<%= link_to "Correct", correct_answer_courses_path,:remote => true,:class=>"btn btn-warning" %> 

そして、私のcorrect_answer.jsは次のようになります。コントローラで

$("#correct_answer").html("<%= j render partial: "beginnercourse/correct" %>"); 

答えて

1

、あなたが定義することができますインスタンス変数@coursetitleおよび@routenumber

$("#correct_answer").html("<%= j render partial: "beginnercourse/correct", coursetitle: @coursetitle, routenumber: @routenumber %>"); 
0

あなたの設定は少し不明です。 correct_answer.jsがビューと同時にレンダリングされる場合は、coursetitleroutenumberインスタンス変数を作成し、コントローラ(@coursetitle@routenumber)に設定することができます。次に、ビューと部分の両方でそれらにアクセスできます。

cells gemを使用して調べることもできますが、これはこのような問題を処理するために作成されたものです。私は、ローカル変数をRailsの部分に渡す方法が焼き付けられているかどうかはわかりません。

しかし、correct_answers.jsはあなたのビューと同時にレンダリングされないようです。この場合、ルートにcoursetitleroutenumberの値が含まれていることを確認できます。例えばroutes.rbファイル

get '/course/:title/route/:number', to: 'controller#action', as: 'correct_answer_courses' 

あなたはcorrect_answer_courses_path(coursetitle, routenumber)でパスを取得します。部分的にparams[:title]params[:number]の値を取得するコントローラーアクションで、それらの値をインスタンス変数に設定し、部分的にそれらを使用します。

関連する問題