示例:通过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>');