Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 使用ajax将信息从视图存储到数据库_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 4 使用ajax将信息从视图存储到数据库

Ruby on rails 4 使用ajax将信息从视图存储到数据库,ruby-on-rails-4,Ruby On Rails 4,我在个人资料页面上有一个“AddFriend”按钮,我希望它在单击时启动一个ajax请求来创建友谊。我需要发送至少两个参数,用户ID和他们试图成为朋友的用户ID 如何检索朋友的ID?我是否可以将其作为数据属性存储在通过JQuery检索的朋友名称旁边?然后将其作为参数之一发送到ajax调用?这样做合适吗?有没有一种方法可以用XML实现这一点 我将把js和html放在一个show.html.erb.js文件中,希望这也合适 编辑 查看下面的内容。注@p由控制器生成,可在视图中访问 <div c

我在个人资料页面上有一个“AddFriend”按钮,我希望它在单击时启动一个ajax请求来创建友谊。我需要发送至少两个参数,用户ID和他们试图成为朋友的用户ID

如何检索朋友的ID?我是否可以将其作为数据属性存储在通过JQuery检索的朋友名称旁边?然后将其作为参数之一发送到ajax调用?这样做合适吗?有没有一种方法可以用XML实现这一点

我将把js和html放在一个show.html.erb.js文件中,希望这也合适

编辑 查看下面的内容。注@p由控制器生成,可在视图中访问

<div class="profile" data-current=<%= current_user.id %>, data-id= <%= @p.user_id %> >
    <%= @p.first_name %> <%= @p.last_name %><br/>
    <button id="btnAddFriend">Add Friend</button>
</div>

然后模型操作将接收这两个参数并使用它来存储数据。请告知这是否合适?是否有更好的方法将好友id从视图传输到ajax调用,即通过xml?

是否可以粘贴带有广告好友按钮的视图代码-使用代码示例回答问题更容易没有创建它,我会尽快更新为什么要使用xml?安全原因。。。如果我不必向客户机公开ajax调用中要使用的变量,我宁愿不公开。这在现场的后期阶段尤其重要。我想知道做这种事情最普遍的方法是什么。控制器的create操作如何检索数据:JSON.stringify(Object)内容?我得到一个错误,说它缺少一个创建模板,如果我执行ajax调用,为什么它坚持要创建一个呢
$(document).ready(function(){   
    alert("Hello");
    $("#btnAddFriend").click(function(){
        alert("Hello");
        addFriend();
    })

    var addFriend = function(){
        var friendId = $('.profile').attr('data-id');
        var user_id = $('.profile').attr('data-current');
        var Object=  {
        friendship: {
                user_id: user_id,
                friend_id:  friendId
             }
        }
        $.ajax({
          type: "POST",
          url: "/users/" + user_id + "/friendships"+ friendId,
          data: JSON.stringify(Object),
          contentType: 'application/json',
          dataType: 'html',
          success: function() {
                $("#btnAddFriend").prop('value', 'Pending');
          }
        });
    }
});