【发布时间】:2015-08-20 04:53:09
【问题描述】:
我有一个简单的应用程序,它在创建新用户时通过 API 后端提供 JSON。我正在尝试将 AJAX 添加到请求中,以便在添加新用户时不会重新加载页面。我真的是 AJAX/API 的新手,真的不知道需要做什么。
这是我的用户 API 控制器:
class Api::UsersController < Api::BaseController
protect_from_forgery with: :null_session
def create
@user = User.create!(user_params)
respond_to do |format|
format.html { redirect_to users_list_path, notice: 'User was successfully created.' }
format.json { render json: @index }
format.js
end
end
private
def user_params
params.require(:user).permit(:name)
end
def query_params
params.permit(:name)
end
end
这是我的索引视图(应该用 ajax 调用刷新):
<% content_for :title do %>Users<% end %>
<h3>Here is the user list. Please click on one to see messages.</h3>
<br/>
<% User.all.each do |user| %>
<p><%= link_to String(user.id) + '. ' + user.name, messages_list_path(user_id: user.id) %></p>
<% end %>
<br/>
<%= form_tag("/api/users.json", method: "post") do %>
<%= label_tag(:add_user, "Add User:") %>
<%= text_field_tag("user[name]") %>
<%= submit_tag("Add") %>
<% end %>
我遇到的问题是,当我添加一个新用户时,它会将我直接带到显示 JSON 数据的http://localhost:3000/api/users.json。我需要该应用程序基本上停留在表单所在的同一页面上,并且只需使用 AJAX 进行更新。
我对在 Rails 和 AJAX 中构建 API 非常陌生,所以任何帮助都会很棒!
【问题讨论】:
标签: javascript ruby-on-rails ajax json rails-api