javascript - jQuery 回调将 Rails 用户值设置为 true

标签 javascript jquery ruby-on-rails ruby-on-rails-4

如果他们通过插件“jQuery Joyride”完成了我的 jQuery 之旅,我希望将我的用户模型上的 bool 值设置为 true。

不太确定我应该如何执行此操作,但这听起来是为已经看过它的用户禁用游览的最佳方法。

$('#contentID').joyride({
  'tipLocation': 'bottom',         // 'top' or 'bottom' in relation to parent
  'nubPosition': 'auto',           // override on a per tooltip bases
  'scrollSpeed': 300,              // Page scrolling speed in ms
  'timer': 2000,                   // 0 = off, all other numbers = time(ms) 
  'startTimerOnClick': true,       // true/false to start timer on first click
  'nextButton': true,              // true/false for next button visibility
  'tipAnimation': 'pop',           // 'pop' or 'fade' in each tip
  'pauseAfter': [],                // array of indexes where to pause the tour after
  'tipAnimationFadeSpeed': 300,    // if 'fade'- speed in ms of transition
  'cookieMonster': true,           // true/false for whether cookies are used
  'cookieName': 'JoyRide',         // choose your own cookie name
  'cookieDomain': false,           // set to false or yoursite.com
  'tipContainer': body,            // Where the tip be attached if not inline
  'postRideCallback': $noop,       // a method to call once the tour closes
  'postStepCallback': $noop        // A method to call after each step
});

任何帮助都会很棒 - 提前致谢。

最佳答案

向您的用户 Controller 添加一个操作来更新标志,您可以将 jQuery Joyride 的旅程标记为完成。

在你的routes.rb中添加一个成员到用户资源

resources :users do
  member do
    post :tour_complete
  end
end

使用 Joyride 中的 post_ride_callback ,您可以调用该操作

post_ride_callback: function() {
  $.post('<%= tour_complete_user_path(current_user) %>');
}

需要考虑的是创建一个表来跟踪用户执行的操作,这样您就可以进行多个游览,并通过在 POST 请求中传递 ID 来将它们标记为完成。

2015 年 10 月 11 日编辑

尝试将您的游览完成操作设置为以下内容。

class UsersController < ApplicationController
  def tour_complete
     current_user.update_column(:completed_tour, true)
     respond_to do |f|
       f.html { redirect_to :back }
       f.json { render json: { success: true } }
     end
  end
end

关于javascript - jQuery 回调将 Rails 用户值设置为 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32936033/

相关文章:

mysql - 如何在某些状态更改时排除增加 counter_cache?

yui - 为什么YUI的Y.Lang.isNull()和Y.Lang.isUndefined()存在?

javascript - jquery 中的 php 数组循环 : alert [ object object]

javascript - 获取复选框值并将它们放入数组中

ruby-on-rails - 轮询新 S3 对象的最佳方法?

ruby-on-rails - 强参数和多维数组

javascript - Autodesk Forge Viewer - 从 "viewer.model.search"和 "viewer.getSelection()"获取不同的值 dbId

javascript - Uncaught TypeError : ctorParameters. 映射在更新到 Angular 7 后不是一个函数

javascript - jquery 删除 div 和以前的标签?

Jquery、Colorbox 问题、第二次单击时 Colorbox 内容打开两次