在 Ruby on Rails 应用程序中,我希望能够将用户的用户名放在输入文本框中,按下“添加”按钮,然后让它们显示在下方及其详细信息。然后,如果我想使用另一个按钮,我可以简单地将它们从列表中删除。
如何连接 Javascript 和 Rails 数据库以专门使用这些按钮完成这样的任务?虽然 Javascript 不是我的强项,但我更困惑于如何使用 Javascript 提取和修改 Rails 数据库。作为参考,我也在使用 MongoDB。
解决这个问题的最佳方法是什么?
这是我用来“发布”到服务器端点“admin/popular/users.json”的 jQuery 和 AJAX 代码,但我不确定如何让 Rails 使用我的在数据库中创建新用户流行::用户模型。
$(document).ready(function() {
$('.add-to-popular-users-button').click(function(event){
event.preventDefault();
var addToPopularUsersBtn = $(this);
var userToBeAdded = $('input[name=popular_user]').val();
var data = { 'popular_user': {'username': userToBeAdded, 'category': 'popular'} };
var url = "/admin/popular/users.json";
$.ajax({
url: url,
data: data,
dataType: 'json',
type: 'POST',
success: function(e) {
alert('Great success!');
}
});
});
});
这是我的 Popular::User 模型:
class Popular::User
include Mongoid::Document
include Mongoid::Timestamps
POPULAR = 'popular'
field :category, default: POPULAR
index :user_id
belongs_to :user
validates_presence_of :user_id
validates_uniqueness_of :user_id
def self.popular
user_ids = self.where( :category => POPULAR ).map(&:id)
User.where(:_id.in => user_ids)
end