Мой JavaScript сериализует поля просмотра и добавляет массив путевых точек для публикации данных, в контроллере каждый параметр отдельно добавляет к геообъекту встречает параметр путевой точки и анализирует массив. Можно ли сделать фильтр, который бы получал эти параметры и анализировал их, чтобы я мог использовать обычный подход? Теперь в обычном подходе это Geo.new (params [: geo]) rails возвращает (поле было определено как (n) Array, но получил String со значением "[\" Paris, France \ ", \" Stuttgart, Deutschland \ "]".).
Контроллер:
def create
@geo = Geo.new
@geo.waypoints = JSON.parse params[:geo][:waypoints] if params[:geo][:waypoints].is_a? String
@geo.description = params[:geo][:description]
@geo.start = params[:geo][:start]
@geo.end = params[:geo][:end]
@geo.save
redirect_to geo_path(@geo), :notice => "Geo successfully submitted."
end
JS:
$('form').submit(function () {
var waypoints = ["Paris, France", "Stuttgart, Deutschland"]
var url = $(this).attr('action');
var waypoints_temp_field = $('<input type="hidden" name="geo[waypoints]" />').val(JSON.stringify(waypoints)).appendTo(this);
var postdata = $(this).serialize();
$.post(url, postdata, function (callback) {
// callback
}, "json");
return false;
});