从视图调用操作并保存发送的值

时间:2015-04-15 14:18:23

标签: ruby-on-rails ruby-on-rails-4

我有两个按钮,一个值为true,另一个值为false;

我想要的是点击访问我的application_controller中的方法(因为我现在已经拥有它),这是保存(在redis中)单击按钮的值,并导航到同一页面(但不是刷新,因为我正在使用turbolinks,我不想再加载所有内容。)

我该如何做这样的事情,我可以创建一个动作并使用按钮的post request制作value,然后使用turbolinks访问某个位置。但这是最好的方式,还是有更好的方法?

1 个答案:

答案 0 :(得分:1)

基本上,如果您使用内置于不显眼的javascript驱动程序的Rails,您可以创建一个按钮,链接或表单,通过添加remote:true选项异步发送数据。

<%= button_to "Do Something", do_some_thing_path, id: 'do_something' remote: true %>

这要求您拥有:

  • 按钮(链接或表单)可以获取,POST,PATCH等到
  • 的实际路由
  • 与路线相关联的控制器操作。

然后您可以通过以下方式收听事件:

jQuery(function(){
  $('#do_something').on('ajax:success', function(e, data, status, xhr){
    // @todo handle success.
  }).on('ajax:failure', function(e, data, status, xhr){
    // @todo handle failure.
  });
});

我建议您阅读Rails指南Working with JavaScript in Rails文章了解详情。