私の問題に適合または解決しなかった多くのソリューションを参照した後、この質問をここに投稿します。
JavaScript を使用してフォームの非表示フィールドにデータを入力し、それを Rails コントローラーに送信します。これは通常の変数では問題なく機能しますが、配列では機能しません。これが私がすることです:
Javascript (jQuery):
$("#my_form").submit(function() {
var testvar = 5;
var testarr = [];
testarr[0] = "test data";
testarr[1] = "other data";
$('input[name=testvar]').val(testvar);
$('input[name=testarr]').val(JSON.stringify(testarr));
})
RoR コントローラー:
def create
testvar = params[:testvar]
data = params[:testarr]
testarr = ActiveSupport::JSON.decode(data)
// other commands
end
testvar では問題なく動作しますが、配列では常にエラーが発生します
can't convert nil into String
私は何を間違っていますか?
リクエストは次のようになります。
{"utf8"=>"✓",
"authenticity_token"=>"1qFA3NTqUxoI1jusbwrVi5AWIpJz9tbUGR0KuCtNKTs=",
"testvar"=>"5",
"testarr"=>"[\"test data\",
\"other data\"]",
"commit"=>"Submit my form data"}
よろしくお願いします。