私は、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:
"["string_1","string_2","string_n"]"
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に変換するか、まだ運がありません。
希望すると助かります。
てみ ' "<%= @ verbatims.to_json.html_safe%>"' Pravanはちょうどそれを試してみましたが、私はJSのエラーを得た – Pavan
感謝を。私は試しました: '" <%= j @ verbatims.to_json.html_safe%> "'これは、"を取り除くために働きますが、それでもこのような文字列になります: '' ["s_1"、 "s_2" 、s_n "]" ' – Andrew