如何将jquery或javascript数据传递给Ruby on Rails模型?

时间:2011-10-06 22:49:15

标签: javascript jquery ruby-on-rails

我正在使用Rails 3中的原型,并最终使用了一些jquery(我的第一次,它非常甜蜜)。虽然,从我的视图(即Impromptu JQuery Survey)提交数据到我的数据库(sqllite3)时,我似乎陷入困境。让我解释一下页面是如何工作的:

  • 当选择下拉项目时,弹出调查。此外,这是一种模态形式,大约有7个问题。

这就是它。我想要的结果是在用户通过单击完成提交表单后,每个已回答的问题都需要进入数据库。一些输入字段是复选框和下拉列表。

以下是调查的最后一个问题的代码示例:

state7: {
                    html:'Personality Type <div class="field"><select name="personality" id="rate_find"><option value="enfp">ENFP</option><option value="INTJ">INTJ</option><option value="ESTJ">ESTJ</option><option value="INTP">INTP</option></select></div>',
                    buttons: { Back: -1, Cancel: 0, Finish: 1 },
                    focus: 2,
                    submit: function(v, m, f){
                        if (v == 0) 
                            $.prompt.close()
                        else 
                            if (v == 1) 
                                return true; //we're done
                            else 
                                if (v = -1) 
                                    $.prompt.goToState('state6');//go back
                        return false;
                    }
                }
            }

            $.prompt(temp,{
                callback: function(v,m,f){
                    var str = "You can now process with this given information:<br />";
                    $.each(f,function(i,obj){
                        str += i + " - <em>" + obj + "</em><br />";
                    }); 
                    $.prompt(str)
                }
            });
        }

1 个答案:

答案 0 :(得分:0)

包含通过即兴弹出窗口获得的信息的键/值对需要像regular form中所期望的那样堆积到POST请求中。如果您有一个ActiveRecord模型用于进入数据库的数据,那么您可以在视图中创建一个具有触发弹出窗口的下拉列表的表单,但只需隐藏整个表单。然后在调查结束时,您可以通过并为正确的输入分配值(例如

$.each(f,function(i,obj){
     $('input#' + i).val(obj);
});

),最后的“完成”按钮可以在表单上trigger the submit event。您可以查看this question以了解如何使用jquery检查复选框。

希望有所帮助!