我正在尝试为Post#new action自动保存一个表单.每分钟左右,我想POST到Post#autosave,然后我将检查first_or_create并保存/更新Posts表中的记录.我的问题是,我无法再从表单访问POST参数.我想这样做:
$(function() {
if ($("#new_post").length > 0) {
setTimeout(autoSavePost, 60000);
}
});
function autoSavePost() {
$.ajax({
type: "POST",
url: "/posts/autosave",
dataType: "script",
success: function(data) {
console.log(data);
}
});
setTimeout(autoSavePost, 60000);
}
Run Code Online (Sandbox Code Playgroud)
我有这条路线:
post 'posts/autosave', as: :autosave_post_path
Run Code Online (Sandbox Code Playgroud)
问题是,服务器日志显示params散列只包含:action和:controller.如何访问作为POST数据的一部分发送的内容的等效内容.
TL;DR我想知道@> {as_champion, whatever}使用和使用之间的优缺点是什么(或者甚至是等效的)IN ('as_champion', 'whatever')。详情如下:
我正在使用Rails并使用Postgres的数组列类型,但是由于Rails finder方法不能很好地使用它,因此不得不对查询使用原始sql。我找到了一种可行的方法,但想知道首选的方法是:
在roles该列Memberships表是我的数组列。它是通过rails这样添加的:
add_column :memberships, :roles, :text, array: true
Run Code Online (Sandbox Code Playgroud)
当我检查表格时,它显示的类型为:(text[]不确定那是否是Postgres真正表示数组列的方式,还是那是Rails shenanigans。
要查询它,我要做类似的事情:
Membership.where("roles @> ?", '{as_champion, whatever}')
Run Code Online (Sandbox Code Playgroud) postgresql ruby-on-rails ruby-on-rails-4 rails-activerecord array-column