我正在嘗試做一個ajax請求。代碼中,所述控制器:如何使這個jquery請求?
def new
@post = Post.new
end
def show
end
def create
@post = Post.new(post_params)
respond_to do |format|
if @post.save
format.html { redirect_to @post, notice: 'Post was successfully created.' }
format.json { render :show, status: :created, location: @post }
else
format.html { render :new }
format.json { render json: @post.errors, status: :unprocessable_entity }
end
end
end
jquery的AJAX:
$(document).ready(function() {
$('.submit').on('click', function(event){
$.ajax({
url: '/posts',
type: 'POST',
dataType: 'json',
// data: {param1: 'value1'},
data: {name: 'value1', comment: 'value2'}
})
})
});
數據得到存儲,除了它是不是通過Ajax發生,我在顯示頁面得到一個錯誤"undefined method 'name' for nil:NilClass"
編輯1:
<%= form_for(@post) do |f| %>
<%= f.label :name %><br>
<%= f.text_field :name %>
<%= f.label :comment %><br>
<%= f.text_field :comment %>
<%= f.submit class: 'submit' %>
<% end %>
編輯2: 路由文件:
root 'posts#index'
resources :posts
show.html.erb
Name: <%= @post.name %>
Comment: <%= @post.comment %>
控制器已腳手架。 format.json { render :show, status: :created, location: @post }
附帶支架。
添加代碼爲高清節目後,我的節目頁的作品。但這個帖子並沒有通過ajax發生。
如果數據存儲但不是通過ajax你只是張貼形式肯定?你的表單是什麼樣的? ('submit',function(){$ .ajax({/ * ajax code * /}),你應該在('submit')上做並返回false,如果你想使用ajax'$('#formId')。 ; return false;});' – futureweb
添加了我的表單。我的提交按鈕有一個類。 – Ann
你沒有使用你的動作的JSON輸出。這引發了一個問題:你究竟想通過使用AJAX來達到什麼目的? –