示例:通过ajax的形式查看用户信息的view值。

不使用ajax形式的代码

#scaffold
rails g scaffold user name address view:integer
#routes.rb
resources :users do
  member do
    put "page", to: "users#page"
  end
end
#users_controller.rb
class UsersController < ApplicationController
  def page
    @user = User.find(params[:id])
    @view = @user.view + 1
    @user.update(view: @view)
    redirect_to @user
  end
end
#view
<%= form_for @user, url: { action: "page" }, method: :put do |f| %>
  <%= f.hidden_field :view %>
  <%= f.button "page" %>
<% end %>

使用ajax的形式,在上面的基础上修改

#gemfile
gem 'jquery-rails'

#assets/javascript/application.js
//= require jquery
//= require jquery_ujs

#修改users_controller.rb
class UsersController < ApplicationController
  def page
    @user = User.find(params[:id])
    @view = @user.view + 1
    @user.update(view: @view)
    respond_to do |format|
      format.html{ redirect_to @user}
      format.js
    end
  end
end

#修改view
<%= form_for @user, url: { action: "page" }, method: :put, remote: true do |f| %>
  <%= f.hidden_field :view %>
  <%= f.button "page" %>
<% end %>

#view/users文件夹中添加如下内容
$("#view").html('<p id="view"><strong>View:</strong> <%= @user.view %></p>');

results matching ""

    No results matching ""