Я собираюсь предположить, что вам нужно включить некоторые предоставленные пользователем данные в новый объект БД - в противном случае было бы гораздо проще просто создать их из Rails.
Если вы используете полностью пользовательских данных, вы можете использовать метод serialize()
(используйте скрытые поля для сгенерированного сервером материала):
jQuery.ajax({
url: '/path/to/whatever',
data: $('#MyForm').serialize(),
type: 'POST'
});
Или вы можете использовать jQuery Form Plugin - это позволит вам легко комбинировать предоставленные пользователем данные с данными, генерируемыми сервером.Например:
$('#MyForm').ajaxForm({
//Hardcoded/server-generated stuff goes in here
//(and will be added to the data from the form inputs):
data: {title: oembed.title},
type: 'POST'
});
Функция ajaxForm()
устанавливает форму и ее значения по умолчанию и отправляет вызов AJAX, когда пользователь нажимает кнопку отправки (см. Также: ajaxSubmit()
).
На стороне Rails все должно работать точно так же, как если бы пользователь отправил форму в обычном режиме (хотя вы можете просто ответить кодом состояния / сообщением - без вызова для перенаправления или рендеринга страницы).
Надеюсь, это поможет!
PS: Из вашего примера видно, что вы можете использовать data: oembed
в своих вызовах AJAX.Это отправит все атрибуты oembed ...