2017-08-17 8 views
0

私は、Railsコントローラの1つでは、(1つではなく)一連のオブジェクトを作成することができます受け取ったパラメータ。文字列の配列をRailsコントローラからJavaスクリプトに渡すときにフォーマットが正しくない

私はコントローラをrespond_to jsにして、作成したばかりのオブジェクトのグループをjs.erbファイルの配列として渡したいと思います。

残念ながら、配列をJSに適切な形式で渡すことができませんでした。

以下私のコントローラ説明するための擬似コードのビット:

// I set my JS variable as below 
var verbatims = ("<%= j @verbatims.to_json %>"); 
// which returns a string like: 
"[&quot;string_1&quot;,&quot;string_2&quot;,&quot;string_n&quot;]" 
verbatims_for_answers.js.erb

def create 
    # Code here returns an array of strings 
    # Each string of the array is converted into a Verbatim instance 
    # I create again an array of strings by 'plucking' the 'content' attribute (a string) from each verbatim object 
    # I set @verbatims to take the value of that array of strings as below 
    @verbatims = @answer.verbatims.pluck(:content) 
    # At this point I'm sure @verbatims returns an array of the form ["string_1", "string_2", "string_n"] 

    respond_to do |format| 
    format.js { render 'verbatims_for_answers.js.erb' 
    end 
end 

ビュー/ verbatims/verbatims_controller.rb

コントローラ/

私はStackOverflowのポストで提案されているようにrawを使用しようとしましたが、成功は次のようになります。

コントローラーからjsonに変換するか、まだ運がありません。

希望すると助かります。

+0

てみ ' "<%= @ verbatims.to_json.html_safe%>"' Pravanはちょうどそれを試してみましたが、私はJSのエラーを得た – Pavan

+0

感謝を。私は試しました: '" <%= j @ verbatims.to_json.html_safe%> "'これは、"を取り除くために働きますが、それでもこのような文字列になります: '' ["s_1"、 "s_2" 、s_n "]" ' – Andrew

答えて

0

余分な引用符削除:

var verbatims = <%= raw @verbatims.to_json %>; 
+0

ありがとうございました。私は' raw'コマンドでコードに気付かず、引用符を使わないようにしました。 – Andrew

関連する問題